美文网首页
有一个数组,先递增后递减,返回峰值位置

有一个数组,先递增后递减,返回峰值位置

作者: Arya鑫 | 来源:发表于2017-08-23 17:56 被阅读56次

    arr[13]={8,9,10,11,10,9,8,7,6,5,4,3,2,1}

    1、逐个遍历

    当遇到arr[i-1]<arr[i],arr[i+1]<arr[i],返回i。

    2、二分查找

    当满足:arr[mid]>arr[mid+1],arr[mid]>arr[mid-1],则返回mid。

    当不满足:如果arr[mid+1]>arr[mid],left=mid。

    如果arr[mid]<arr[mid+1],right=mid。

    3、递归,

    返回条件:单调递增时,说明最后一个是峰值 。

                      单调递减时,说明第一个是峰会。 

     递归条件:arr[mid-1]>arr[mid],递归前部分,

                       arr[mid-1]<=arr[mid],递归后部分。


    http://blog.csdn.net/beiyeqingteng/article/details/6995092

    http://blog.csdn.net/feliciafay/article/details/20586551


    相关文章

      网友评论

          本文标题:有一个数组,先递增后递减,返回峰值位置

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