golang 多协程版二分查找
code
func binarySearch(arr []int, search, left, right int, w *sync.WaitGroup) {
w.Add(1)
go func(w *sync.WaitGroup) {
mid := (left + right) / 2
if left > right || mid <= 0 {
println("没有找到")
w.Done()
return
}
midVal := arr[mid-1]
if search < midVal {
binarySearch(arr, search, left, mid-1, w)
w.Done()
return
} else if search > midVal {
binarySearch(arr, search, mid+1, right, w)
w.Done()
return
} else {
println("找到了")
w.Done()
return
}
}(w)
}