android源码里面的二分法查找

frameworks\base\core\java\android\util\ContainerHelpers.java

// This is Arrays.binarySearch(), but doesn't do any argument validation.
static int binarySearch(int[] array, int size, int value) {
  int lo = 0;
  int hi = size - 1;

  while (lo <= hi) {
    final int mid = (lo + hi) >>> 1;
    final int midVal = array[mid];

    if (midVal < value) {
      lo = mid + 1;
    } else if (midVal > value) {
      hi = mid - 1;
    } else {
      return mid;  // value found
    }
  }
  return ~lo;  // value not present
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容