二分搜索

2021-10-09  本文已影响0人  张_何

思路

实现

int indexOf(List<int> array, int v) {
  if (array == null || array.length == 0) return -1;
  int begin = 0, end = array.length;
  while(begin < end) {
    int mid = (begin + end) >> 1;
    if (v < array[mid]) {
      end = mid;
    } else if (v > array[mid]) {
      begin = mid + 1;
    } else {
      return mid;
    }
  }
  return -1;
}
int search(List<int> array, int v) {
  if (array == null || array.length == 0) return 0;
  int begin = 0, end = array.length;
  while(begin < end) {
    int mid = (begin + end) >> 1;
    if (v < array[mid]) {
      end = mid;
    } else {
      begin = mid + 1;
    }
  }
  return begin;
}

问题

上一篇 下一篇

猜你喜欢

热点阅读