假如有一个数组大小为 20 ,里面保存着 1到20 这20个数字
,
现在查找7,那么先拿7和 20/2比较,7比10 小,所以7再
10的左边这几个数里面,
再拿7和 10/2 比较,7大于5,所以,7再5的右边的5个数里面,一直进行下去,直到找到为止。
#include 虽然称不上是很高的高手,但还是可以试试的。 很难哦!
#define n=10
main()
{int k,i;
int table[n]={0,2,4,6,8,10,12,14,16,18};
int mid,left=0,right=n-1;
int find=0;
printf("请输入一个数:");
scanf("%d,&k");
while(!find&&left
if(k==table[mid])
find=1;
else if(kright=mid-1;
else left=mid+1;}
if (find==1)
printf("%d在table[%d]中\n",k,mid);
else
printf("没有找到数%d\n",k);
}
一定要是二分查找吗?其他方法是否可以?