二分查找

2018-08-01  本文已影响0人  junjun2018

二分查找的关键在于: 通过起始位置标记中心位置
二分查找的数组必须是有序的。

public class BinarySearchDemo {

    public static void main(String[] args) {
        int[] arr = {0, 2, 4, 5, 7, 8, 11, 33, 66};
        bsearch(arr, 2);
    }


    public static void bsearch(int arr[], int target) {
        //初始化起始位置,声明中间位置
        int start = 0;
        int end = arr.length - 1;
        //此变量要带到循环中,即时改变
        int middle;
        //由于不知道具体循环的次数,采用while循环,结束条件为开始位置比结束位置还要大
        while (start <= end) {
            middle = (end - start) / 2;
            //如果在中间位置左边,开始位置不变,结束位置为middle-1,反之,结束位置不变,开始位置为midd+1
            if (target < arr[middle]) {
                end = middle - 1;
            } else if (target > arr[middle]) {
                start = middle + 1;
            } else {
                System.out.println("您要查找的元素在" + middle + "处");
                break;
            }
        }

    }
}
//结果
您要查找的元素在1处
上一篇下一篇

猜你喜欢

热点阅读