折半查找源代码(折半查找法代码)
admin 发布:2022-12-19 15:29 100
今天给各位分享折半查找源代码的知识,其中也会对折半查找法代码进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
c++折半查找法
#includeiostream
using namespace std;
int a[100];
int find1(int l,int r,int x)//递归折半查找
{
int m=(l+r)/2;
if(lr)//查找失败
return -1;
if(x==a[m])//查找成功返回下标
return m;
else if(xa[m])
find1(m+1,r,x);//查找右边
else if(xa[m])
find1(l,m-1,x);//查找左边
}
int main()
{//折半查找,待查找数列必须有序(升序或降序)
int x,n,num;
cinn;//输出n待查找数列长度
for(int i=0;in;i++)
cina[i];//输入n个数
cinx;//输入查找值
num=find1(0,n,x);//调用折半查找函数(返回下标)
if(num!=-1)//数组下标0~n-1;返回-1查找失败
{
coutx":在数组中的位置 ";
coutnumendl;
}
else
cout"查找失败"endl;
return 0;
}
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++折半查找 求源代码
#include stdio.h
int search(int low,int high,int n,int num[]);//函数声明
void main()
{
int i,n,num[20];
for (i=0;i=19;i++)
{
num[i]=i+10;
printf("%d ",num[i]);
}
printf("输入要查找的数:");
scanf("%d",n);
printf("%d\n",search(0,19,n,num));
}
int search(int low,int high,int n,int num[])//折半查找的函数
{
int mid;
mid = (low+high)/2;
if (n==num[mid])
return mid;
else if(nnum[mid])
search(mid+1,high,n,num);
else
search(low, mid-1,n,num);
}
C语言折半查找法详细代码(假如有10个已排好序的数)
折半查找即二分查找,思想是:在一组有序的数据中查找一个数据,首先将要查找的数据与这组数中间的值比较,如果要查找的数据比它小,则在左半部分中继续查找;若比中间值大,则在右半部分中继续查找,相等的话就表示已找到,直接返回。
这样,每次查找都可以将查找范围缩小一半,以此达到O(log N)的时间复杂度。
折半查找代码如下:
int bsearchWithoutRecursion(intarray[],int low,int high,int target)
{
while(low = high)
{
int mid = (low + high) / 2;
if(array[mid] target)
high = mid - 1;
else if (array[mid] target)
low = mid + 1;
else
return mid;
}
return -1;
}
折半查找源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于折半查找法代码、折半查找源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
相关推荐
- 04-28国美全屏轮播代码(天猫全屏轮播代码)[20240428更新]
- 04-28要源代码的网站(要源代码的网站是什么)[20240428更新]
- 04-28web百度一下源代码(百度首页源代码HTML)[20240428更新]
- 04-28开源微信商城源代码(微信小程序商城源代码)[20240428更新]
- 04-28e语言连接数据库代码(连接数据库的代码)[20240428更新]
- 04-28glib源代码(glibc源码)[20240428更新]
- 04-28html5静态登录界面代码(html登陆界面代码)[20240428更新]
- 04-28安卓文件浏览器代码(安卓浏览器下载地址)[20240428更新]
- 04-28qq截图java代码(截图教程)[20240428更新]
- 04-28oschina如何下载代码(oschina)[20240428更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
- 友情链接