搜索
您的当前位置:首页正文

二分查找单峰数组中的最大值O(logn)

来源:好走旅游网
⼆分查找单峰数组中的最⼤值O(logn)

#include using namespace std;//单峰数组最⼤值算法//要求 O(log n)

//使⽤⼆分查找法

int BinarySearch(int *a,int left ,int right){int mid = (left+right)/2;

//下⾯2条语句是为了防⽌数组越界

if(mid == left && a[mid]>a[mid+1]) return mid;

else if(mid == right && a[mid]>a[mid-1]) return mid;

else if(a[mid]>a[mid-1] && a[mid]>a[mid+1]) return mid;// 顶峰在右边,去右边找

else if(a[mid]else if(a[mid]int main (){int n;

int a[10000];int mid;cin>>n;

for(int i=0;i>a[i];}

mid=BinarySearch(a,0,n-1);cout<

因篇幅问题不能全部显示,请点此查看更多更全内容

Top