封装成函数:
//二分法查找//切片s是升序的//k为待查找的整数//如果查到有就返回对应角标,//没有就返回-1func BinarySearch(s []int, k int) int {lo, hi := 0, len(s)-1for lo <= hi {m := (lo + hi) >> 1if s[m] < k {lo = m + 1} else if s[m] > k {hi = m - 1} else {return m}}return -1}
测试:
s := []int{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}fmt.Println(BinarySearch(s, 6))
输出:
6
最后
以上就是迷路哈密瓜最近收集整理的关于算法代码实现之二分法查找,Golang(Go语言)实现的全部内容,更多相关算法代码实现之二分法查找内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复