7-3 折半查找 (20分)
输入数组大小n,然后输入n(1<=n<=10)个整数,再输入查找值key,使用折半查找(二分查找)方法来判断数组中是否存在查找值key。
输入格式:
先输入数组大小n,然后输入数组的n个元素,最后输入待查找的值key。
输出格式:
如果数组中存在待查找的key,则输出Found,否则输出 Not exist。
输入样例:
在这里给出一组输入。例如:
4
12 89 32 91
32
输出样例:
在这里给出相应的输出。例如:
Found
#include<stdio.h>
int _chazao(int [],int,int);
int main()
{
int a[10],n,i,h;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
scanf("%d",&h);
int j;
j=_chazao(a,n,h);
if(j>=0)
{
printf("Found");
}
else
{
printf("Not exist");
}
return 0;
}
int _chazao(int a[],int n,int h)
{
int low, high, mid, t;
low = 0; high = n - 1;
while(low <= high)
{
mid = (low+high);
if (h == a[mid])
return mid;
else if (h < a[mid])
high = mid - 1;
else
low = mid + 1;
}
return -1;
}