二分查找

  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 -1;  // value not present
    }

主要是为了熟悉各种基本算法,在需要的时候能尽快找到,这里并没有进行参数校验

>>> 是无符号位移符号,右移一位,高位以0补齐,不考虑符号
posted @ 2018-11-14 17:32  静致远  阅读(100)  评论(0编辑  收藏  举报