封装成函数:
//二分法查找//切片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

本文介绍了一种使用Go语言实现的二分查找算法。该算法适用于已排序的整数切片,通过递归方式查找目标值,并返回其索引位置。若未找到则返回-1。文中提供了一个测试案例,展示了如何使用此函数来查找指定元素。
7714

被折叠的 条评论
为什么被折叠?



