#include<iostream>
#include<vector>
#include<stdio.h>
using namespace std;
void find(vector<int> a,int n,int m){
int mid, low, high;
low = 0, high = n - 1;
while(low<=high){
// cout << "mid=" << mid << endl;
mid = (low + high) / 2;
if(m<a[mid]){
high = mid - 1;
}
else if(m>a[mid]){
low = mid + 1;
}
else {
printf("%d的下标为%d\n", m, mid + 1);
return;
}
}
cout << "没有找到这个数" << endl;
return ;
}
int main()
{
int n;
cout << "请输入一个数n代表要输入n个数" << endl;
cin >> n;
vector<int> a;
cout << "请输入n个数,用空格隔开" << endl;
for (int i = 1; i <= n;i++){
int x;
cin >> x;
a.push_back(x);
}
int m;
cout << "请输入要查找的数" << endl;
cin >> m;
find(a, n, m);
return 0;
}
02-16
6204
09-04
390
09-05
1086