首页 > 代码库 > 数据结构--查找
数据结构--查找
专题--查找
1. 二分查找
1 /*二分查找*/ 2 int Binary_Search(int a[],int n,int key) 3 { 4 int lo=0; 5 int hi=n; 6 //版本A 7 while(lo<hi) 8 { 9 int mid=(lo+hi)>>1;10 if(a[mid]<key)11 lo=mid+1;12 else if(key<a[mid])13 hi=mid;14 else15 return mid;16 }17 18 /*19 //版本B:若多个命中元素,总能保证返回秩最大者;查找失败时,能够返回失败的位置20 while(lo<hi)21 {22 int mid=(lo+hi)>>1;23 key<a[mid] ?hi=mid:lo=mid+1;24 }25 return --lo;26 */27 return -1;28 }29 30 int main()31 {32 int a[]={0,2,4,6,8,1,3,5,7,9};33 int index=Binary_Search(a,10,5); 34 cout<<index<<endl; //735 return 0;36 }
数据结构--查找
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。