二分查找

1. 二分查找是一种算法,其输入是一个有序的元素列表(必须有序的)。如果要 查找的元素包含在列表中,二分查找返回其位置;否则返回null。

一般而言,对于包含n个元素的列表,用二分查 找最多需要log2n步,而简单查找最多需要n步。

    private static int binarySearch(int[] eles, int tgt) {
        int low = 0;
        int high = eles.length - 1;
        int mid = -1;
        while (low <= high) {
            mid = (high + low) / 2;
            System.out.println(String.format("high:%d, low:%d, mid:%d", high, low, mid));
            if (tgt < eles[mid]) {
                high = mid - 1;
            } else if (tgt > eles[mid]) {
                low = mid + 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

  

posted @ 2021-05-14 17:03  小路不懂2  阅读(70)  评论(0编辑  收藏  举报