美文网首页
二分查找法

二分查找法

作者: 风就那么大 | 来源:发表于2018-12-18 23:01 被阅读0次

    int array[] = {1, 3, 6, 7, 9, 11, 18, 21, 25, 26, 33, 35, 36};

    int searchIndex = binarySearch(array, 0, array.length, 65);

    System.out.println("查找出的结果  " + searchIndex);

    /**

    * @param array    查找的数据

    * @param fromIndex 开始的起点

    * @param toIndex  到中点

    * @param key      查找的内容

    * @return 二分查找法  必须建立在有序的基础上

    */

    public int binarySearch(int array[], int fromIndex, int toIndex, int key) {

    int low = fromIndex;

        int high = toIndex -1;

        while (low <= high) {

    int mid = (high+low) >>1;// 等同于 (high+low)/2

            int minValue=array[mid];

            //需要查找的值 小于 当前值  高位指针移动

            if (minValue > key) {

    high = mid -1;

            }else if (minValue

    //需要查找的值 大于 当前值  低位指针移动

                low=mid+1;

            }else{

    //两个值相等  返回当前位置

                return mid;

            }

    }

    return -1;

    }

    相关文章

      网友评论

          本文标题:二分查找法

          本文链接:https://www.haomeiwen.com/subject/imwrkqtx.html