基本的二分查找算法:针对的是已经排好序的数组。
1 #include <iostream> 2 3 using namespace std; 4 5 //二分查找算法 6 7 //返回-1表示没找到。 8 int binarySearch(int a[],int n,int target) 9 { 10 int low=0; 11 int high=n-1; 12 13 while(low<high) 14 { 15 int middle=(low+high)/2; 16 if(a[middle]==target) 17 return middle; 18 else if(a[middle]>target) 19 high=middle-1; 20 else 21 low=middle+1; 22 } 23 return -1; 24 } 25 26 int main() 27 { 28 int a[]={1,2,3,4,5,6}; 29 int index=binarySearch(a,6,5); 30 cout<<index<<endl; 31 return 0; 32 }