算法-二分法查询

1、二分法查询

    public static void main(String[] args) {
        int[] array = new int[]{1, 4, 3, 2, 6, 5, 8, 9, 7};
        int target = 9;
        boolean flag = findTarget(target, array);
        System.out.println(flag);
    }

    public static boolean findTarget(int target, int[] array) {
        if (null == array || array.length == 0) {
            return false;
        }
        Arrays.sort(array); //排序从小到大
        int start = 0;
        int end = array.length;
        int mid = (start + end) / 2;
        while (true) {
            System.out.println(String.format("start:%s,end:%s,mid:%s", start, end, mid));
            if (start > end || mid >= array.length) {
                return false;
            }
            if (array[mid] == target) {
                return true;
            } else if (array[mid] < target) {
                start = mid + 1;
                mid = (start + end) / 2;
            } else if (array[mid] > target) {
                end = mid - 1;
                mid = (start + end) / 2;
            }
        }
    }

认识不足,才可发展……

如果转载,注明出处。

posted @ 2021-03-24 23:01  活出自己范儿  Views(64)  Comments(0)    收藏  举报