常见算法学习(C语言实现)(一)
来源:互联网 发布:linux telent 安装 编辑:程序博客网 时间:2024/05/29 17:47
折半查找,二分搜索(Binary Search):基本思想:减小顺序文件查找序列的长度,分而治之的进行关键字的查找。查找过程:先确定查找记录所在的范围,然后逐步地缩小查找的范围,直到找到目标关键字为止(也有可能查找失败)。
注意:折半查找适用于有序的数据记录,以上事例为数据记录为递增情况下的算法。若在数据纪录为递减的情况下,具体代码需要稍加改动。思考以下代码,你会发现什么问题?如果我们查找的数据序列长度十分庞大,那么在某些情况下 (low + high) 会不会超出 middle 所定义数据类型的表达范围,导致数据溢出,这样 middle 的值还会是我们想要的值吗?所以我们要对算法进行改进,将原先的表达式替换为下面的表达式会更为稳妥。还有一个问题,如果 target 并不处于我们查找的有序递增数组 array 的最小值与最大值范围之内,我们还需要一遍又一遍的执行 while 循环直到条件不满足才退出吗?我想应该不需要,所以我们最好在开头添加一个简单的判断语句来避开这种情况,代码如下。最后,修改后的算法如下所示:。。。
0 0
- 常见算法学习(C语言实现)(一)
- C语言几种常见排序算法(一)
- 常见基础算法大集合(C语言实现)
- 常见的几种内排序算法以及实现(C语言)
- 常见的几种内排序算法以及实现(C语言)
- 常见的排序算法C语言实现(—)
- 常见排序算法及其C语言实现(二)
- 常见字符串函数的模拟实现(一)(c语言)
- 如何用Python实现常见机器学习算法(一)
- c语言常见面试题(一)
- 算法:C语言实现(Algorithms In C)的学习
- 【c语言】c语言常见编程题总结(一)
- 字符串匹配算法的C/C++语言实现(一)
- 常见排序算法的C语言实现以及算法复杂度分析(持续更新)
- 机器学习算法的R语言实现(一):KNN
- 机器学习常见算法总结(一)
- 机器学习算法之C4.5(C语言实现)
- 算法:C语言实现(第3章 学习笔记)
- python压缩zip文件
- LinearLayout addView 应该是这样写的.
- 总结14,展望15
- C++/CLI 托管C++的数组介绍【4】
- c#如何esc退出Form
- 常见算法学习(C语言实现)(一)
- Sort Colors
- codeforces good bye 2014
- [leetcode 16] 3Sum Closest
- python解压缩zip文件
- hadoop 之初接触
- 蛇形矩阵for循环实现
- 2014 年终总结...
- 关于QMessageBox中按键位置的调换