折半查找法寻数
来源:互联网 发布:java语言培训学校 编辑:程序博客网 时间:2024/05/22 03:37
折半查找法基本思想(数组元素降序):
有点类似于数学上二分法,即每次找出区间中间元素进行比较,若中间元素恰好等于该数,输出该数;若大于中点元素,取左区间,否则取右区间,不断收缩区间;当区间左端点大于右端点,结束查找,输出该数组无此元素;
下面给出代码,实现方法较多:
#include<stdio.h>int main(){int str[15]={140,130,120,110,100,90,80,70,60,50,40,30,20,10,0};//降序数组int p;//起点int r;//终点int mid;//中点int num;printf("please enter the num\n");scanf("%d",&num);//从键盘获得要查找的数p=0,r=14;//初值while(p<=r){mid=(p+r)/2;if(num==str[mid])//恰好等于中点元素情况{printf("str[%d]=%d\n",mid,num);break;}else if(num>str[mid])r=mid-1;//降序数组,取左区间else p=mid+1;//取右区间}if(p>r) printf("no num\n");return 0;}
下面是测试数据:
要注意端点值:
0 0
- 折半查找法寻数
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- 折半查找
- [UWP]了解模板化控件(5):VisualState
- BZOJ2006: [NOI2010]超级钢琴
- 使用multiprocessing包规避Python GIL多线程串行问题
- const修饰成员函数const修饰对象
- vb.net 教程 5-15 图像处理之内存处理 3
- 折半查找法寻数
- 2017最新版本 elasticSearch5.3.0笔记 查询教程
- [UWP]了解模板化控件(4):TemplatePart
- 1004. 成绩排名 (20)
- 【Offer收割]编程练习赛15-题目1 : 偶像的条件】
- 1005. 继续(3n+1)猜想 (25)
- Windows SDK获取网卡信息
- Java读取文件夹下多个txt文本内容
- Android中的文件下载——DownLoadManager