二分法查找---原理
如何从数组里找一个元素的位置?如果排列是无序的,我们只能从头到尾找,但如果排列是有序的,我们则可以用别的更好的方法,二分查找法就类似我们在英汉词典里找一个单词的方法。如下图所示(假如我们要查找的数字是“88”):

二分法查找---代码演示
package main
import "fmt"
func binary_search(arr [10]int, a int) (index int) {
low := 0
high := len(arr) - 1
for {
//中间值
mid := (high + low) / 2 //注意是 +
if arr[mid] > a {
high = mid - 1
} else if arr[mid] < a {
low = mid + 1
} else {
index = mid
return
}
//如果还没有找到 返回-1
if high <= low {
index = -1
return
}
}
}
func main() {
arr := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
m := binary_search(arr, 19)
fmt.Println(m)
}
➢了解更多Go语言知识:https://study.163.com/course/introduction/1210620804.htm
最后
以上就是呆萌朋友最近收集整理的关于Go语言 算法图解——二分查找的全部内容,更多相关Go语言内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复