C语言调用函数折半查找 用c语言实现折半查找

c语言的折半查找法C语言调用函数折半查找你的数组的索引为0-14
所以C语言调用函数折半查找你可以设两个变量
这两个变量a,b是用来限制你要的数的范围的
一开始a=0 b=14
接着取索引为int((a+b)/2 )的元素与你输入的比较
如果比输入的小的话那么设a=int(a+b)/2 )
接着继续取索引为int((a+b)/2 )的元素与你输入的比较
如果比输入的大的话那么设b=int(a+b)/2 )继续找下去 如果相等的话就打印并break
不然一直到a=b退出循环
c语言编程实现“折半查找”的过程 。//参考代码如下:
#include stdio.h
int main()
{
int i, j, n, k=0, isFound=0;
int num[15] = {88,86,75,74,61,56,52,43,39,34,31,22,18,16,8};//测试数组
printf("请输出一个整数:\n");
scanf("%d", n);
i = (int)15/2;//对折位移量
j = (int)15/2;//取数“指针”
while(k2)
{
i = (int)i/2;
if(i == 0) k++;//i==0 即折半到无可再折时,仍有最后一次比较,故以k做计数
//若未相等,计算下一循环指针的位置
if(nnum[j])
j = j + (i + 1);
else if(nnum[j])
j = j - (i + 1);
else
{
isFound = 1;
break;//若找到相等数,标记已找到并退出循环
}
}
//输出结果
if(isFound)
printf("该数是数组中第%d个元素的值\n", j);
else
printf("查无此数!\n");
return 0;
}
c语言折半查找/*折半查找递归函数,如果查找成功 , 函数返回关键字所在位置 , 否则返回-1*/
/* s为有序数列,a、b分别为查找区间的起点和终点,key为查找关键字 */
int half(int s[],int a,int b,int key)
{
int mid;
if(a==b)
if(key==s[a]) return (a);
else return (-1);
else
{
mid=(a+b)/2;
if(keys[mid]) return(half(s,a,mid,key));
if(keys[mid]) return(half(s,mid+1,b,key));
if(key==s[mid]) return (mid);
}
}
这是折半查找的递归算法,应该是你说的意思?。?
用c语言实现折半查找#includestdio.h
int find(int a[],int x,int n,int m)
{int i;
if(nm)return -1;
i=(n+m)/2;
if(a[i]==x)return i;
if(a[i]x)return find(a,x,n,i-1);
return find(a,x,i+1,m);
}
int main()
{
int a[20]={2,3,6,7,12,18,19,21,25,28,30,33,37,39,42,45,47,49,50,51};
int x,i;
printf("已有C语言调用函数折半查找的数是:\n");
for(i=0;i20;i++)
printf("%d ",a[i]);
printf("\n请输入要查找C语言调用函数折半查找的数:");
scanf("%d",x);
if((i=find(a,x,0,19))=0)
printf("%d是第%d个数\n",x,i+1);
else printf("未找到%d\n",x);
return 0;
}
C语言折半查找法#includestdio.h
int main()
{
char a[12]="abcdefklmnp",ch;
int i,top,bot,mid;
printf("Input a character\n");
scanf("%c",ch);
printf("ch=%c\n",ch);
top=11;
bot=0;
mid=(top+bot)/2;
while(bot=topa[mid]!=ch)
{if(a[mid]ch)top=mid-1;
else if(a[mid]==ch)break;
else bot=mid+1;
mid=(top+bot)/2;
}
if(a[mid]==ch)printf("第%d个字符就是%c\n",mid+1,ch);
if(bottop)printf("该字符不存在a中\n");
return 0;
}
【C语言调用函数折半查找 用c语言实现折半查找】C语言调用函数折半查找的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于用c语言实现折半查找、C语言调用函数折半查找的信息别忘了在本站进行查找喔 。

    推荐阅读