欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

查找

程序员文章站 2022-07-12 09:10:24
...

二分查找

public static int binarySearch(Integer[] srcArray, int des) {
    //定义初始最小、最大索引
    int low = 0;
    int high = srcArray.length - 1;
    //确保不会出现重复查找,越界
    while (low <= high) {
        //计算出中间索引值
        int middle = (high + low)>>>1 ;//防止溢出,如0,9就是4
        if (des == srcArray[middle]) {
            return middle;
        //判断下限
        } else if (des < srcArray[middle]) {
            high = middle - 1;
        //判断上限
        } else {
            low = middle + 1;
        }
    }
    //若没有,则返回-1
    return -1;  // 有可能不存在,比如5,7,8查找6,后面low,high=0,low=1,low>high,跳出循环
}

哈希表
冲突:
1 开发定址:线性,二次
2 再哈希:换个哈希函数
3 链地址

上一篇: 查找

下一篇: 查找