二分法查找
来源:互联网 发布:单片机连接马达 编辑:程序博客网 时间:2024/05/19 14:53
二分查找又称二分查找。
如果是在一个元素排列有序的数组中进行查找,可以采用折半查找。
二分查找的基本思想是:对于已知的按关键字排序的序列,经过一次的比较后,可将序列分割成两部分,然后只在有可能包含待查找元素的一部分中接着查找,并根据试探结果继续分割,逐步缩小查找范围,直到找到或找不到为止。
二分查找的具体图解
代码如下;
#include<iostream>#include<algorithm>using namespace std;// 折半查找的方法,在元素升序排列的数组list中查找值为k的元素int binSearch(int list[],int n,int k){ int low=0; int high=n-1; while(low<=high)//如果low<=high 表示整个数组尚未查找完 { int mid=(low+high)/2;//求中间元素的下标 if(k==list[mid]) return mid;//找到k 返回下标 else if(k<list[mid]) high=mid-1;//若k<list[mid]将范围缩小到前一半 else low=mid+1;//若k>list[mid]将范围缩小的后一半 } return -1;//若找不到 返回-1}int main(){ int list[]={1,2,3,4,5,6}; cout<<binSearch(list,5,5)<<endl; return 0;}
阅读全文
0 0
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- 二分法查找
- android 签名工具 autoSign jarsigner
- rand()函数与srand()函数的对比与使用
- python 爬虫第一步
- 用RxJava实现事件总线(Event Bus)
- VS“提示无法启动调试未安装Silverlight”的解决办法
- 二分法查找
- android 逆向工程apktool dex2jar jd-gui Jadx Smali2Java
- bzoj2438 [中山市选2011]杀人游戏
- 无限极分类之查找家谱树
- 矩阵求逆引理(matrix inversion lemma)
- ASP.NET MVC 远程下载文件
- 在macOS Sierra dock栏中增加钥匙串访问
- 每段时间Android开发10个知道(基础系列)-170602
- STM32-SPI之OLED