xxxxxxxxxx
package main
import (
"fmt"
"golang.org/x/exp/constraints"
)
func binarySearch[T constraints.Ordered](list []T, value T) int {
low := 0
high := len(list) - 1
for low <= high {
mid := (low + high) / 2
if list[mid] > value {
high = mid - 1
} else if list[mid] < value {
low = mid + 1
} else {
return mid
}
}
return -1
}
func main() {
fmt.Println(binarySearch([]int{1, 2, 3, 4, 5, 6, 10, 14, 200, 300}, 14))
}