二分查找
#include <iostream> using namespace std; int binSearch(int a[],int b,int n) { int l=0,r=n-1,mid=0; while(l<=r){ mid=(l+r)>>1; if(a[mid]==b) return mid; else if(a[mid]>b){ r=mid-1; }else{ l=mid+1; } } return -1; } int main() { int a[]={1,3,5,6,7,8,9,12}; int len=sizeof(a)/sizeof(a[0]); int b=7; if(binSearch(a,b,len)==-1){ cout<<"所查找的值不存在"<<endl; }else{ cout<<"所查找的值在数组内的索引为:"<<binSearch(a,b,len)<<endl; } return 0; }

浙公网安备 33010602011771号