Appearance
二分查找
Go
package main
import "fmt"
func main() {
a := []int{1, 3, 5, 7, 9, 11, 13, 15}
fmt.Println(binarySearch(a, 7))
}
func binarySearch(a []int, target int) int {
left, right := 0, len(a)-1
for left < right {
mid := (left + right) / 2
if a[mid] == target {
return mid
}
if a[mid] > target {
right = mid - 1
} else {
left = mid + 1
}
}
return -1
}