美文网首页
算法-二分查找

算法-二分查找

作者: zzq_nene | 来源:发表于2020-08-06 00:07 被阅读0次

对有序数组进行查找

一、非递归

    private static int binarySearch(int[] array, int key) {
        int low = 0;
        int height = array.length - 1;
        while (low <= height) {
            int mid = (low + height)/2;
            if (array[mid] < key) {
                low = mid + 1;
            } else if (array[mid] > key) {
                height = mid - 1;
            } else {
                return mid;
            }
        }
        return -1;
    }

二、递归查找

    private static int binarySearch1(int[] array, int key, int low, int height) {
        if (low > height)
            return -1;
        int mid = (low + height)/2;
        if (array[mid] > key) {
            return binarySearch1(array, key, low, mid - 1);
        } else if (array[mid] < key) {
            return binarySearch1(array, key, mid + 1, height);
        }
        return mid;
    }

相关文章

网友评论

      本文标题:算法-二分查找

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