二分查找算法的C/C++实现
自己随便写的,如果大家有更优化的算法,希望留下评论或链接,非常感谢~~~
int half_search(int num, int arr[], int len){
int start = 0, end = len-1;
int index = 0;
while(start <= end){
index = start + (end-start)/2; //不用 (end+start)/2 是为了防止溢出,
// index = start + (end-start)>>1; //这样可能更快
if(num == arr[index]){
printf("We found this num: %d/n", arr[index]);
return 1;
}else if(num > arr[index]){
start = index + 1;
}else{
end = index - 1;
}
}
printf("Couldn't found this num: %d/n", num);
return 0;
}
转载于:https://www.cnblogs.com/secbook/archive/2008/07/21/2655468.html
二分查找算法的C/C++实现相关推荐
- 二分查找算法的一点改进
在计算机科学中,二分查找,是一种在有序数组中查找某一特定元素的搜索算法.这种搜索算法每一次比较都使搜索范围减半.第一篇二分查找的论文发表于1946年,然而第一个没有bug的二分查找算法却是在1962年 ...
- 二分查找算法的两种实现方式:非递归实现和递归实现
二分查找的条件是对一组有序数组的查找,这一点很容易忘记,在使用二分查找的时候先要对数组进行排序. 先说一下二分查找的思路:一个有序数组,想要查找一个数字key的下标,首先算出中间下标mid,利用mid ...
- 二分查找算法为什么要先排序
其实二分查找算法就和我们在一个英文字典中找一个单词一样,比如要找middle这个单词,先把字典翻到大概中间的位置,那么现在字典就被分成两个部分了,middle这个单词要么在第一个部分,要么在第二个部分 ...
- LeetCode面试刷题技巧-二分查找算法代码思路解析
二分查找的思想 提及二分查找算法,我想大部分人都不陌生,就算不是学计算机的,基本上也都使用过二分查找的思想,不信的话,且听我慢慢为你道来. 不知道你有没有玩过这样一个游戏,猜数字.就是说一个人心里想了 ...
- Python 二分查找算法
如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,69,72,76 ...
- 二分查找算法(递归与非递归两种方式)
首先说说二分查找法. 二分查找法是对一组有序的数字中进行查找,传递相应的数据,进行比较查找到与原数据相同的数据,查找到了返回1,失败返回对应的数组下标. 采用非递归方式完成二分查找法.java代码如下 ...
- JavaScript实现binarySearch二分查找算法(附完整源码)
JavaScript实现binarySearch二分查找算法(附完整源码) Comparator.js完整源代码 binarySearch.js完整源代码 binarySearch.test.js完整 ...
- 二分查找算法及其变种
前言 二分查找算法也称为折半查找算法,是一种在查找算法中普遍使用的算法.其算法的基本思想是:在有序表中,取中间的记录作为比较关键字,若给定值与中间记录的关键字相等,则查找成功:若给定的值小于中间记录的 ...
- 顺序查找与二分查找算法
顺序查找算法 顺序查找是非常简单常用的查找算法,基本思路:从第一个元素m开始逐个与需要查找的元素x进行比较,当比较到元素值相同(即m=x)时返回元素m的下标,如果比较到最后都没有找到,则返回-1.该算 ...
- 递归与分治——二分查找算法(折半查找算法)
二分搜索主要解决的问题是确定排序后的数组中是否包含目标元素val. 二分搜索通过持续跟踪数组中包含元素val的范围.分为两个过程,第一就是找到了,第二个就是没找到: 一开始,这个范围是整个数组,然后通 ...
最新文章
- 让人头痛的大事务问题到底要如何解决?
- java类中定义索引器,C#面向对象基础——字段、属性和索引器
- [YTU]_1066 ( 输入n个数和输出调整后的n个数)
- caffe中mnist数据集的运行
- java 类之间转换,java数据类型之间转换应用方法
- 【2017-04--28】Winform中ListView控件
- ASP.NET【3】--ASHX
- 从零实现深度学习框架——Softmax回归中的数值稳定
- IT人喝酒不同岗位不同姿态,最服运维!
- 带通滤波器中心频率带宽matlab,带通滤波器频率设置
- 人性的弱点【我要喜欢你】
- 华为p20nfc怎么复制门禁卡_新功能上线!你的手机NFC也可以当门禁卡使用
- 《NVMe-over-Fabrics-1_0a-2018.07.23-Ratified》阅读笔记(3)-- 命令
- 仿知乎客户端的白天黑夜主题切换
- JavaScript “佛祖保佑 永无bug”
- Tableau Desktop连接MongoDB
- ESP32学习(3):ESP32上运行ILI9341驱动LCD
- 计算机网络专用术语基本概念
- 跟叶子学把妹——教程序猿把妹第三集
- java生成二维码图片(有logo),并在图片下方附文字