| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 折半查找法(二分搜索法) -> 正文阅读 |
|
[数据结构与算法]折半查找法(二分搜索法) |
学习C语言的时候,折半查找法应该是很多人绕不开的一个简单算法。作为一名C语言的初学者,第一次看这个算法的时候着实是有些头疼。不过仔细读读发现其实并没有想象中那么难。 ? ? 折半搜索,也称二分搜索是一种在有序数组中查找某一特定元素的搜索算法。 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?————摘录自百度百科 折半查找的原理很简单,从中间的元素开始,如果恰好等于中间元素,则程序结束;如果特定元素大于(小于)中间元素,则会从大于(小于)中间元素的那一部分重复之前的操作,直至找到或者为空结束。 如果我们想找到中间元素,我们首先设置最低变量low和最高变量high,进行记录最低和最高元素的脚码以便我们去找中间元素。然后设置中间变量min,记录中间变量的脚码。(下面我以一个有15个元素的数组进行演示)
当特定值大于中间值时: 当特定值小于中间值时: 从上面的过程我们不难看出,当特定值大于中间值时,high变量不变,low变量变成了mid+1;当特定值小于中间值时,low变量不变,high变量变成了mid-1。这一点在我们写程序的时候要时刻注意,不能直接把mid的值赋值给low或者high。 那么,这个查找什么时候结束呢?当我们的low变量的值与high变量的值相等或者大于high变量的时候说明我们没有在数组中找到我们要的特定值。此时,就是程序结束的时候了。 下面,让我们看一道题和它对应的代码来体会下折半查找法吧 题目: 有15个数按从小到大的顺序存放在一个数组中,输入一个数,用折半查找的方法找出该数是数组中第几个元素的值。如果该数不在数组中,则输出“无此数”。?
运行结果: ? 总结?:利用折半查找法我们可以省去一个一个数字进行比较的重复操作从而节省时间。但折半查找也有个很大的缺点就是必须是一个已知长度的有序数组,而且插入删除很困难。同时要注意,在C语言中,数组脚码从”0“开始哦! 作为一个初学者,总结的可能不是很全面,请各位大佬指点。 看到这就给孩子点个赞吧^-^! ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 12:20:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |