二分查找
分析:所谓二分查找就是每次与被查找数组的中间元素进行比较,若是找到目标,则找到,否则与剩余一半的元素进行继续查找。为保证每次查找的元素是中间大小的元素,二分查找前数组必须按从小到大或从大到小排好序。由于每次查找范围减少一半,因此,n个元素的数组只需查找log2n次。若n=1024,则最多只需查找10次,因为log2n=log21024=10。
int main()
{
int num[10]={1,2,3,4,5,6,7,8,9,10},n; //数组要有排序
int min=0,max=9,mid; //min max 要初始化
cout<<"输入要查找的数 :";
cin>>n;
while(min<=max)
{
mid=(min+max)/2;
if(num[mid]==n) break;
else if(num[mid]<n) min=mid+1;
else max=mid-1;
}
if(min<=max) cout<<"找打"<<n<<endl;
else cout<<"未找打"<<endl;
return 0;
}