Skip to content

二分查找

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
}