算法

作者: lixinxin | 来源:发表于2021-07-13 17:35 被阅读0次

    // 一个数组,先生序到i,再降序。i表示数组中max的标记。想请教下那种查找再这种情况下那个更快?
    // 我用的二分法,大家帮忙看看

    @Test
    public void Binary() {
        int[] arr = {1, 2, 3, 4, 5, 6, 7, 5, 4, 3, 2, 1, 0};
        int l = 0;
        int r = arr.length - 1;
        int v = BinarySearch(arr, l, r);
        System.out.println(v);
    }
    public int BinarySearch(int a[], int l, int r) {
        int mid = l + (r - l) / 2;
        if (a[mid] > a[mid - 1] && a[mid] < a[mid + 1]) {
            return BinarySearch(a, mid + 1, r);
        } else if (a[mid] < a[mid - 1] && a[mid] > a[mid + 1]) {
            return BinarySearch(a, l, mid - 1);
        } else {
            return a[mid];
        }
    }
    

    相关文章

      网友评论

          本文标题:算法

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