Go语言 大话数据结构——二分查找

知识内容详见《大话数据结构》P298

代码实现:

package main
import "fmt"
func Binary_Search(ptr *[]int, key int) (index int) {
	low := 0  //指向第0个元素
	high := len((*ptr)) - 1  //指向最后一个元素
	for low <= high {
		mid := low + (high-low)/2 //折半
		if (*ptr)[mid] < key {
			low = mid + 1
		} else if (*ptr)[mid] > key {
			high = mid - 1
		} else {
			return mid //找到,返回对应的索引值
		}
	}
	return -1  //没有找到,返回-1
}
func main() {
	arr := []int{1, 2, 4, 5, 6, 7, 8, 12, 56, 78, 90, 98}
	index := Binary_Search(&arr, 90)
	fmt.Println(index)
}

猜你喜欢

转载自blog.csdn.net/weixin_42117918/article/details/82227898
今日推荐