Arrays.binarySearch() 实现

public static int binarySearch(char[] array, int startIndex, int endIndex, char value) {
    checkBinarySearchBounds(startIndex, endIndex, array.length);
    int lo = startIndex;
    int hi = endIndex - 1;
 
    while (lo <= hi) {
        int mid = (lo + hi) >>> 1;    //无符号右移
        char 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
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容