#include<iostream>
using namespace std;
int BinarySearch(int a[], int x, int n){
//在a[0]<=a[1]<=...<=a[n-1]中搜索x
//找到x时返回位置,未找到返回-1
int left = 0;
int right = n-1;
while(left <= right){
int middle = (left + right)/2;
if( x == a[middle])
return middle;//找到x
if( x > a[middle])
left = middle + 1;
else
right = middle - 1;
}
return -1;//未找到x
}
int main()
{
int n ;
cout<<"请输入数组大小:"<<endl;
cin>>n;
int a[n];
cout<<"请输入顺序数组:"<<endl;
for(int i=0;i<n;i++){
cin>>a[i];
}
int x;
while(1){
cout<<"请输入要查询的数:"<<endl;
cin>>x;
cout<<BinarySearch( a, x , n)<<endl;
}
return 0;
}
二分法搜索
最新推荐文章于 2024-07-13 10:27:01 发布