上一次是递归版这次是循环版.嘿嘿
code:
func binarySearch2(arr []int, search, left, right int, w *sync.WaitGroup) {
w.Add(1)
for {
go func(w *sync.WaitGroup) {
mid := (left + right) / 2
println(left, " ", right)
if left > right || mid <= 0 {
println("没有找到")
w.Done()
syscall.Exit(0)
}
midVal := arr[mid-1]
if search < midVal {
right = mid - 1
} else if search > midVal {
left = mid + 1
} else {
println("找到了")
w.Done()
syscall.Exit(0)
}
}(w)
}
}