数据结构--查找
Posted halo_vagabond
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构--查找相关的知识,希望对你有一定的参考价值。
专题--查找
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 else 15 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; //7 35 return 0; 36 }
以上是关于数据结构--查找的主要内容,如果未能解决你的问题,请参考以下文章