bisect.go 327 B

123456789101112131415
  1. package bisect
  2. import "sort"
  3. // Right to locate the insertion point for v in a to maintain sorted order.
  4. func Right(a []int, v int) int {
  5. return bisectRightRange(a, v, 0, len(a))
  6. }
  7. func bisectRightRange(a []int, v int, lo, hi int) int {
  8. s := a[lo:hi]
  9. return sort.Search(len(s), func(i int) bool {
  10. return s[i] > v
  11. })
  12. }