#include<stdio.h>
void search(int *p)
{
int mid=0,top=9,bot=0,x=0,find=0;
printf("请输入要查找的数:");
scanf("%d",&x);
do
{
mid=(top+bot)/2;// 中间位置
if(x==*(p+mid))
{
printf("找到了%d,是第%d位\n",x,mid+1);
find=1;
}
else if(x<*(p+mid))
{
top=mid-1;//下一步查找范围的前半段
}
else if(x>*(p+mid))
{
bot=mid+1;//上一步查找范围的后半段
}
}
while(bot<=top&&find==0);//未找到条件
if(find==0)
printf("%3d没有找到.",x);
printf("\n");
}
int main()
{
int a[10]= {1,3,5,7,9,12,14,16,18,20};
search(a);
return 0;
}
二分/折半查找算法用指针方法的实现:假设有10个按升序排列的整型数据(例如{1,3,5,7,9,12,14,16,18,20}),编写程序查找其中的数。
最新推荐文章于 2022-09-19 23:23:39 发布