tools.go 263 B

12345678910111213141516171819
  1. package main
  2. import "sort"
  3. func BinarySearch(s []string, k string) int {
  4. sort.Strings(s)
  5. lo, hi := 0, len(s)-1
  6. for lo <= hi {
  7. m := (lo + hi) >> 1
  8. if s[m] < k {
  9. lo = m + 1
  10. } else if s[m] > k {
  11. hi = m - 1
  12. } else {
  13. return m
  14. }
  15. }
  16. return -1
  17. }