美文网首页
二分查找

二分查找

作者: relax_小罗罗 | 来源:发表于2020-05-02 16:06 被阅读0次

二分查找(折半查找):
前提: 数据已经有序排放在数组中,通过将待查的元素与数组最中间元素进行对比,如果大于中间值,则目标值可能存在于右半部分,否则可能在左半部分,查到为止

    public static void main(String[] args) {
        int arr[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };// 源数据
        int key = 1;
        int ret = biSearch(arr, key);
        System.out.println(ret);
    }

    public static int biSearch(int arr[], int a) {
        int start = 0;
        int end = arr.length - 1;

        int mid;
        while (start <= end) {
            mid = (start + end) / 2;

            if (arr[mid] < a) {
                start = mid + 1;
            } else if (arr[mid] > a) {
                end = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;//找不到
    }

相关文章

网友评论

      本文标题:二分查找

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