求教一个简单的问题,折半查找问题
#include<stdio.h>void main()
{
int x,mid,top,bottom,a[10]={2,3,5,7,8,11,14,35,68,70};
printf("请输入要查找的数:");
scanf("%d",&x);
bottom=0;
top=9;
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在数组中的下标为%d\n",x,mid);
else
printf("查无此数!\n");
}
我是C的初学者,这段程序中当X<a[mid]后面的top=mid-1;还有x>a[mid]后面的bottom=mid+1;这个怎么理解,谢谢回复!