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

算法-二分查找

作者: 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