您当前的位置: 首页 >  算法

郭梧悠

暂无认证

  • 5浏览

    0关注

    402博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

《算法设计》求单峰数组

郭梧悠 发布时间:2012-10-18 10:18:32 ,浏览量:5

这是算法设计书地171页上的题:假设有n个项的数组A,数组的每个元素都不相同,该数组序列是单峰的:对于某个在0与n-1之间的下标p,

数组项的值增加直到A中的位置p,然后剩下的元素减少直到位置n,

要求:尽量读很少的元素,就是找到这个顶峰元素p在哪一个位置,下面是具体的递归实现

ublic class FindMaxIndex {

    public static int findMaxIndex(int arr[], int begin, int end) {
        int center = (begin + end) / 2;

        //如果中间元素处于上坡的位置
        if (arr[center] > arr[center - 1] && arr[center] < arr[center + 1]) {
            begin = center + 1;
            return findMaxIndex(arr, begin, end);

        }//如果处于下坡的位置
        else if (arr[center] < arr[center - 1] && arr[center] > arr[center + 1]) {
            end = center -1;
            return findMaxIndex(arr, begin, end);
        } else {//此种情况是当arr[center-1]            
关注
打赏
1663674776
查看更多评论
0.0390s