binary search
func BinarySearch(slice []int, target int) (index int) {
low := 0
high := len(slice) - 1
for {
if low <= high {
mid := (low + high) / 2
guess := slice[mid]
if guess == target {
return mid
}
if guess > target {
high = mid - 1
} else {
low = mid + 1
}
}
}
}
main
func main() {
slice := make([]int, 1000000)
for i := 0; i < 1000000; i++ {
slice = append(slice, i)
}
rand.Seed(time.Now().UnixNano())
v := rand.Intn(1000000-1) + 1
fmt.Printf("针对%d进行二分查找:\n", v)
index := BinarySearch(slice, v)
fmt.Printf("%d的在slice中的index为:[%v]\n", v, index)
}