折半查找源代码(折半查找程序代码)
admin 发布:2022-12-19 06:03 89
本篇文章给大家谈谈折半查找源代码,以及折半查找程序代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、C++折半查找 求源代码
- 2、C语言中怎样利用折半查找法(二分查找法)找到数列中的一个数?
- 3、c语言编程实现“折半查找”的过程。
- 4、C语言折半查找法详细代码(假如有10个已排好序的数)
- 5、c++折半查找法
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语言中怎样利用折半查找法(二分查找法)找到数列中的一个数?
根据需求,用二分法查找指定数组中的指定数字,代码如下:\x0d\x0a#include\x0d\x0a//在长度为len的数组a中寻找n,找到就返回数组下标,没找到就返回-1\x0d\x0aintsearch(inta[],intlen,intn)\x0d\x0a{\x0d\x0aintindex=-1;\x0d\x0aintleft=0,right=len,mid=(left+right)/2;\x0d\x0a\x0d\x0awhile(lefta[mid])\x0d\x0a{\x0d\x0aleft=mid+1;\x0d\x0amid=(left+right)/2;\x0d\x0a}\x0d\x0aelse\x0d\x0a{\x0d\x0aright=mid-1;\x0d\x0amid=(left+right)/2;\x0d\x0a}\x0d\x0a}\x0d\x0a\x0d\x0areturnindex;\x0d\x0a}\x0d\x0aintmain()\x0d\x0a{\x0d\x0aintarray[]={5,8,13,17,23,25,29,50,53};//数组\x0d\x0aintlength=9;//数组长度\x0d\x0aintaim=17;//查找目标\x0d\x0a\x0d\x0a//输出查找结果,Search17inarray[]:3\x0d\x0aprintf("Search%dinarray[]:%d\n",aim,search(array,length,aim));\x0d\x0a\x0d\x0areturn0;\x0d\x0a}
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语言折半查找法详细代码(假如有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;
}
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;
}
折半查找源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于折半查找程序代码、折半查找源代码的信息别忘了在本站进行查找喔。
版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;
- 上一篇:源代码音轨(音频源代码)
- 下一篇:悬浮qq窗口代码(怎么显示悬浮窗口)
相关推荐
- 04-28jspservlet源代码(@webservlet)[20240428更新]
- 04-28web图书管理系统源代码(图书管理系统web设计)[20240428更新]
- 04-28网页缩放代码(网页的缩放)[20240428更新]
- 04-28购物网页制作代码(购物网页制作代码大全)[20240428更新]
- 04-28识别图片文字的代码(识别图片文字的代码是什么)[20240428更新]
- 04-28mrpvb源代码(mrp资源包)[20240428更新]
- 04-28源代码和二进制代码(有二进制版本的,但源代码是后来的)[20240428更新]
- 04-28mfc五子棋代码(cmd五子棋代码)[20240428更新]
- 04-28医药供货网页源代码(医药厂家直供货源平台)[20240428更新]
- 04-28网页文件上传源代码(上传文件的网页)[20240428更新]
取消回复欢迎 你 发表评论:
- 标签列表
- 最近发表
-
- 视频互联网推广选择隐迅推,视频互联网推广选择隐迅推广的原因
- mfc五子棋代码(cmd五子棋代码)[20240428更新]
- 医药供货网页源代码(医药厂家直供货源平台)[20240428更新]
- 可以免费做网站推广的平台,哪些网站可以免费做推广
- 网页文件上传源代码(上传文件的网页)[20240428更新]
- 用php获取第三方接口网址代码(php 访问接口)[20240428更新]
- android锁屏代码(android锁屏密码解锁)[20240428更新]
- 通过鼠标滑动切换界面的代码(鼠标拖动窗口总是滑动)[20240428更新]
- 百度网盘会员,百度网盘会员到期后超出的容量怎么办
- f网自己的代码(F是什么代码)[20240428更新]
- 友情链接