标签:ext 数据 log 结构 bsp [] search key logs
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 }
标签:ext 数据 log 结构 bsp [] search key logs
原文地址:http://www.cnblogs.com/cygalaxy/p/7077082.html