题目描述
有10个整数已按从小到大的顺序排好序,存储在一个数组中,再输入一个数,要求用折半查找法找出该数是数组中的第几个元素(输出该元素的下标即可)。如果该数不在数组中,则输出"Not exist!"
样例输入
1 2 3 4 5 6 7 8 9 10
3
样例输出
2
示例代码
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n[10];
int Min = 0, Mid, Max = 9;
for (int i = 0; i < 10; i++)
cin >> n[i];
int a;
cin >> a;
while (Min < Max)
{
Mid = (Min + Max) / 2;
if (n[Mid] > a)
Max = Mid - 1;
else if (n[Mid] < a)
Min = Mid + 1;
else
break;
}
if(n[Mid]==a)
cout<<Mid<<endl;
else
cout<<"Not exist!"<<endl;
return 0;
}