//折半查找
#include<stdio.h>
#define N 5
void main(){
int max,min,n,a[N],i = 0,in,w,flag = 1;
scanf("%d",&a[i++]);
//按照从小到大的顺序从键盘输入数据
while(i < N){
scanf("%d",&w);
if(w > a[i-1]){
a[i] = w;
i++;
}
else
printf("请按顺序输入数字\n");
}
printf("请输入需要查找的数据:\n");
scanf("%d",&n);
//min和max为不断缩小的数据范围
min = 0;
max = N;
while(max > min && flag){
in = (max + min)/2;
if(n > a[in])
min = in + 1;
else if(n < a[in])
max = in - 1;
else if(n == a[in]){
printf("%d在第%d号位置\n",n,in+1);
flag = 0;
}
}
if(flag)
printf("not found %d\n",n);
}
用C语言实现折半查找
最新推荐文章于 2022-10-26 14:15:42 发布