Go实现二分法查找

来源:互联网 发布:耐玩的手机小游戏知乎 编辑:程序博客网 时间:2024/06/01 20:39

Go实现二分法查找

package main/*Go实现二分法查找二分法查找基实就是折半查找, 提前条件是数组为有序数组思路:1. 确定中间位置k2. 将要查找的值T与array[k]比较,若相等,则查找成功。若array[k] < T, 则应该向大的方向找,k=k+1;若array[k] > T, 则应该向小的方向找,k=k-1; */import (    "fmt")func BinSearch(array []int, s int) int {    low := 0    high := len(array) - 1    for {        if (low > high) {            break        }        mid := (low + high) / 2        if (array[mid] < s) {            low = mid + 1        } else if (array[mid] > s) {            high = mid - 1        } else {            return mid        }    }    return -1}func main() {    ary := []int{1,2,3,4,5,6,7,8,9,10}    s := 9    n := BinSearch(ary, s)    fmt.Printf("要查找的数字为[%d],在数组中的位置为[%d]", s, n)}

输出:
要查找的数字为[9],在数组中的位置为[8]

原创粉丝点击