數據結構--查找
阿新 • • 發佈:2017-06-25
數據 end 能夠 div code out 元素 search ron
專題--查找
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 } 2930 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 }
數據結構--查找