小代码 二分查找之部分有序
#include<iostream>usingnamespacestd;intfindx(int*xx,intx,intn){//assert(xx);intl=0;intr=n;intmid=r/2;if(xx[l]==x)returnl;if(xx[mid]==x)returnmid;if(xx[r]==x)returnr;if(xx[l]<xx[mid])r=mid;elsel=mid;if(xx[l]<x&&x<xx[r]);else{if(x<xx[l])l=mid;r=n;if(x>xx[r])l=0;r=mid;}while(l<=r){mid=(l+r)/2;if(x==xx[mid])returnmid;elseif(x<xx[mid])r=mid-1;elseif(x>xx[mid])l=mid+1;}return-1;}intmain(){intxx[]={21,22,33,44,45,2,4,6,8,10};cout<<findx(xx,22,10)<<endl;}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。