数据结构算法-go 实现二分法
二分法通过对折的方式查找一个数据,条件是必须是一个有序的数组。数组底层是顺序链表,可以随机获取一个值O(1).
func main() {
s := []int{1,2}
res := BinarySearch(1,s)
fmt.Println(res)
}
func BinarySearch(target int, s []int) int{
if len(data) < 0 {
return -1
}
right := len(data)-1
left := 0
for left <= right {
mid := (left+right)/2
if data[mid] == target {
return mid
}
if data[mid] > target{
right = mid-1
}
if data[mid] < target {
left = mid+1
}
}
return -1
}
本作品采用《CC 协议》,转载必须注明作者和本文链接