张明远欧吧 关注:7贴子:61
  • 0回复贴,共1

最后一发!NO.5。祝吧友考试顺利。

只看楼主收藏回复

5.对输入的n个整数进行折半查找
#define M 50
#include<stdio.h>
#include<conio.h>
main()
{
int i,length;
int low,high,mid;
int key,s;
int st[M];
printf("Please input SSTable length:\n");
scanf("%d",&length);
printf("Please input SSTable data:\n");
for(i=1;i<=length;i++)
{
printf("%d:\t",i);
scanf("%d",&st[i]);
}
while(1)
{
s=0;
printf("Please input Search Key:\n");
scanf("%d",&key);
if(key==-1)
return(0);
low=1;
high=length;
while(low<=high)
{
mid=(low+high)/2;
if(key<st[mid])
high=mid-1;
if(key>st[mid])
low=mid+1;
if(st[mid]==key)
{
s=mid;
break;
}
}
if(s==0)
printf("%d is not here\n",key);
else
printf("%d is st[%d]\n",key,s);
}
getch();
}


IP属地:浙江1楼2014-06-05 21:09回复