golang之查找算法-待完善

package main

import (
    "fmt"
)

func main() {
    var array = []int{3, 5, 2, 89, 65, 65, 887, 345}
    index := traveSearch(array, 89)
    fmt.Println(index)

    var array2 = []int{3, 5, 65, 887, 999, 1345}
    index2 := binarySearch(array2, 999)
    fmt.Println(index2)
}

//遍历查找
func traveSearch(array []int, value int) int {

    for k, v := range array {
        if value == v {
            return k
        }
    }
    return -1
}

//二分查找
func binarySearch(array []int, value int) int {
    var begin, end, mid int
    end = len(array) - 1
    begin = 0
    for begin <= end {
        mid = (begin + end) / 2
        if array[mid] > value {
            end = mid - 1
        } else if array[mid] < value {
            begin = mid + 1
        } else {
            return mid
        }
    }
    return -1
}

猜你喜欢

转载自blog.csdn.net/phpduang/article/details/81436560