描述
从键盘输入n个(n不超过100)从小到大已排好序的整数存入数组,然后在数组中采用二分法查找整数x。
如果找到,则输出x在数组中的下标;如果没有找到,则输出“Not found”。
输入
第1行1个正整数n(不超过100);
第2行共n个整数,从小到大排列;
第3行1个待查找整数x。
输出
如果找到,输出x在数组中的下标,否则输出字符串“Not found”。
输入样例 1
10 2 3 5 7 8 11 14 35 68 70 35
输出样例 1
7
#include<stdio.h>
int main(int argc,char *argv[])
{
int n,x,i,bottom,mid,top,z;
scanf("%d",&n);
z=n;
bottom=0,top=n-1;
int a[100]={0};
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&x);
while(bottom<=top)
{
mid=(top+bottom)/2;
if(x<a[mid])
top=mid-1;
else if(x>a[mid])
bottom=mid+1;
else break;
}
if(bottom<=top)
printf("%d",mid);
else printf("Not found");
}