天猫菜鸟物流电话:c语言高手请进!!!!

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/05 08:49:29
用二分查找实现输入一个数,输出有关查找的信息

#include <stdio.h>
#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<right)
{mid=(left+right)/2;
if(k==table[mid])
find=1;
else if(k<table[mid])
right=mid-1;
else left=mid+1;}
if (find==1)
printf("%d在table[%d]中\n",k,mid);
else
printf("没有找到数%d\n",k);
}

虽然称不上是很高的高手,但还是可以试试的。
一定要是二分查找吗?其他方法是否可以?

很难哦!

假如有一个数组大小为 20 ,里面保存着 1到20 这20个数字

现在查找7,那么先拿7和 20/2比较,7比10 小,所以7再
10的左边这几个数里面,
再拿7和 10/2 比较,7大于5,所以,7再5的右边的5个数里面,一直进行下去,直到找到为止。