二分查找算法原理与图示【算法图解】

7 篇文章 1 订阅
订阅专栏

引言

为了得更好更优越的远行性能与减少操所需要的时间,才廷生出一种,优越的查找算法-----二分查找。
二分查找即一种算法,接受输入有序元素列表和所找元素,若所找无素包含在有序列表中,即返回位置,反之则返回null
请添加图片描述

例如你在一家网站平台登录,在输入用名时,要在服务器查找相应信息、如果这家网站用户量10万,需在10万中查找,可根据用户名首字母排序,从26字母中间查找开始,相比从头开始,要省去一半的查找量,有一组有序数列包含100个 元素,

二分查找与简单查找

我想查找1~100个数字中任意一个元素数字所在位置,现有两种算法,一种简单查找,一种即二分查找,为了更深入理解二分查找的原理,在此作以
区别

首先:简单查找,

简单查找,便是从头到尾依次,为所查找元素/依次进行查找。
请添加图片描述
就这样简单查找需要遍历有序列表中每一个无素、如上,便需进行100 次查找操作才有可能找到所需元素位置,假如一个有序列表中含有10万个元素,仅设每次查找操作1毫秒,全部下来也需10万毫秒,甚比几天,显然不太现实。

其次:二分查找,

二分查找便是从中间开始查找,将一个有序数列从中间分成两个区间通过比较找到所查元素所在区间,依次往复便可找到该元素,这样每次将所找区间分为二分之一便提高了效率,缩短查找时间。
Ps:类例于用二分法来解方程求近似解,但有些异同。
请添加图片描述

在区间[1~100]之内。不论查询哪一数字,仅在7步操作之内便可,相比简单算法舍去了许多不必查找的区间,因此节省大量服务器资源,时间,提升性能

请添加图片描述

假设查询一本含240000 个单词的字典,用上
图二分查询操作流程图便可知仅需18步, 每次排除一半直至
剩下一个单词。

总结

规律:依据许多实例对于n个元素的有序列表,仅需log2ⁿ次
操作而简单操作则需n步。
二分查找–案例
案例:函数binary_search接收一个"有序数组"和"一个元素"。
如果,指定的元素包含在数组中,这个函数将返回其位置。

案例

python案例

def binary_search(list, num):                          
    low = 0                         # 最小索引
    high = len(list) - 1            # 最大索引

    while low <= high:
        mid = int((low + high) / 2)  # 向0取整,中间值的索引
        guess = list[mid]            # 猜中间值

        if guess == num:             # 找到了元素
            return ('got %d in index of %d') % (num, mid)

        if guess < num:              # 猜小了,增加最小索引
            low = mid + 1
        else:
            high = mid - 1           # 猜大了,缩小最大索引

    return None

my_list = [1,3,5,7,9]
find_num = 3
print(binary_search(my_list,find_num))
find_num1 = 4
print(binary_search(my_list,find_num1))

----------------------------
三种排序算法主要过程图示
10-03
三种排序算法主要过程图示
数据结构与算法 | 二分查找
平头哥的技术博文
08-12 2805
原理 二分查找(Binary Search)算法,也叫折半查找算法二分查找的思想非常简单,有点类似分治的思想。二分查找针对的是一个有序的数据集合,每次都通过跟区间的中间元素对比,将待查找的区间缩小为之前的一半,直到找到要查找的元素,或者区间被缩小为 0。 为了方便理解,我们以数组1, 2, 4, 5, 6, 7, 9, 12, 15, 19, 23, 26, 29, 34, 39,...
【查找算法二分查找
suiyishiguang的博客
03-04 1116
【查找算法二分查找
PooledDataSource forcefully closed/removed all connections解决
lovey030821的博客
05-10 1万+
解决方法: 1,很可能是配置的一些错误,在mybatis的核心配置文件里检查错误 2,MySql8.0的时候,配置的url如下: <property name="url" value="jdbc:mysql://localhost:3306/java505?useSSL=false&amp;serverTimezone=UTC&amp;...
二分查找算法(Binary Search Algorithm)精讲与python实现
学习中
08-30 341
二分查找算法(Binary Search Algorithm)精讲与python实现
二分查找的三种方法
小王学代码
12-29 2436
对于已经排好序的数组,快速的寻找到指定元素,并返回其下标,这个时候就有二分查找的妙用提示:以下是本篇文章正文内容,下面案例可供参考第二种和第三种实质上差不多,最后返回 l 或者 r 都可以,最经典的是第一种方法,第二种第三种更快一点。//要找的就是大于x的 如果满足的话 mid 在x左边缩小范围为 r=mid 【l,mid】}}}
二分查找算法
lclchong的博客
12-16 5597
二分查找也常被称为二分法或者折半查找,每次查找时通过将待查找区间分成两部分并只取 一部分继续查找,将查找的复杂度大大减少。对于一个长度为 O(n) 的数组,二分查找的时间复 杂度为 O(log n)。举例来说,给定一个排好序的数组 {3,4,5,6,7},我们希望查找 4 在不在这个数组内。第一次 折半时考虑中位数 5,因为 5 大于 4, 所以如果 4 存在于这个数组,那么其必定存在于 5 左边这一 半。于是我们的查找区间变成了 {3,4,5}。
二分查找【多种方法+图解】
Jambo!的博客
11-10 4261
二分查找
详解二分查找算法
一地鸡毛的博客
03-05 2914
二分查找是通过将递增序列不断减半的方式寻找目标值的下标。其看似简单,但往往存在一些细节被忽略,即while循环判断条件和区间右边界的取值方式。另外,我们往往只知二分查找搜索目标值的功能,而忽略了二分查找的另外一个功能,即寻找最大的小于目标值的元素和最小的大于目标值的元素。 一、二分查找算法的基本框架 二分查找充分利用了序列元素的递增性质,采用分治策略搜索目标值(目标值存在于序列中),目标值的左边界和右边界(目标值不存在于序列中),其中左边界指的是最大的小于目标值的元素,右边界指的是最小的大于目标值的元素
算法】手把手学会二分查找
Lin_Alpaca的博客
03-24 3757
二分查找算法的详细讲解,如果你还不懂二分,看这篇就对了✨✨
分巧克力(二分) JAVA题解
weixin_41988889的博客
01-12 538
儿童节那天有KK位小朋友到小明家做客。 小明拿出了珍藏的巧克力招待小朋友们。 小明一共有NN块巧克力,其中第ii块是Hi×WiHi×Wi的方格组成的长方形。 为了公平起见,小明需要从这NN块巧克力中切出KK块巧克力分给小朋友们。 切出的巧克力需要满足: 形状是正方形,边长是整数 大小相同 例如一块6×56×5的巧克力可以切出66块2×22×2的巧克力...
基于ARM的数控算法图示仪设计
07-13
本文设计了一种基于ARM嵌入式处理器的专用数字图示仪,能帮助仅具有基本操作知识的使用者,直观清楚地了解插补过程中各轴脉冲的关系和对应算法下刀具运动的轨迹。
BM算法原理图示详细讲解
03-14
BM算法原理图示详细讲解
Python 超详细算法与数据结构视频教程
最新发布
05-06
查找:线性查找和二分查找 基本排序算法: 冒泡、选择、插入排序 高级排序算法: 归并排序、快排 树,二叉树 堆与堆排序 优先级队列 二叉查找树 图与图的遍历 python 内置常用数据结构和算法的使用。list, dict, set, ...
二分查找算法(折半查找算法
ccc369639963的博客
01-21 2688
二分查找算法(折半查找算法二分查找又称折半查找、二分搜索、折半搜索等,是在分治算法基础上设计出来的查找算法,对应的时间复杂度为O(logn)。 二分查找算法仅适用于有序序列,它只能用在升序序列或者降序序列中查找目标元素。 二分查找算法的实现思路 在有序序列中,使用二分查找算法搜索目标元素的核心思想是:不断地缩小搜索区域,降低查找目标元素的难度。 以在升序序列中查找目标元素为例,二分查找算法的实现思路是: 初始状态下,将整个序列作为搜索区域(假设为 [B, E]); 找到搜索区域内的中间元素(假设所在位置
算法二分查找
OceanStar的博客
04-28 8484
引入 二分查找是一种非常简单易懂的快速查找算法,生活中到处可见。 例子一 我们现在来做一个猜字游戏。我随机写一个 0 到 99 之间的数字,然后你来猜我写的是什么。猜的过程中,你每猜一次,我就会告诉你猜的大了还是小了,直到猜中为止。你来想想,如何快速猜中我写的数字呢? 假设我写的数字是 23,猜数过程如下。(如果猜测范围的数字有偶数个,中间数有两个,就选择较小的那个。) 例子2 假设有1000条订单数据,已经按照订单金额从小到大排序,每个订单金额不同,并且最小单位是元。我们现在想知道支付存在金额等
查找算法二分查找
热门推荐
weixin_47406709的博客
07-10 5万+
二分查找
粒子群算法POS图示
10-16
粒子群算法(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,其灵感来源于鸟群捕食行为。在PSO中,每个解被看作是一个粒子,每个粒子的位置代表一个解,粒子的速度代表解的搜索方向和速度。粒子之间通过信息交流来调整自身位置和速度,以期望找到最优解。 下面是一个简单的PSO算法的伪代码: 1. 初始化粒子群的位置和速度 2. 对于每个粒子,计算其适应度值 3. 如果当前适应度值优于历史最优适应度值,则更新历史最优适应度值和历史最优位置 4. 对于每个粒子,更新其速度和位置 5. 重复步骤2-4,直到满足停止条件 下面是一个简单的PSO算法的POS图示: ![PSO_POS](https://img-blog.csdn.net/20180522163412909?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p6aGFuZ3hp/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/85)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 关于建站域名选取的问题及注意事项分享 5060
  • html页面如何不同设备自适应缩放比例 4996
  • Voice meter 下载与安装 4826
  • 编程理念-程序基本编写IPO方法 4760
  • 安卓系统或安卓机顶盒如何安装entware来搭建liunx系统环境 4470

分类专栏

  • IT杂项 5篇
  • IT其他 7篇
  • #生物 2篇
  • 数学 1篇
  • IT技术交流 4篇
  • 学科知识 1篇
  • python 1篇
  • PHP开发交流 1篇
  • 建站Web服务 3篇

最新评论

  • 如何解决phpmyadmin提示在服务上检测到错误

    hui-梦苑: 应该没有吧,没听说呀表情包

  • 如何解决phpmyadmin提示在服务上检测到错误

    思存、: PHPmyadmin5.0是不是停用了

您愿意向朋友推荐“博客详情页”吗?

  • 强烈不推荐
  • 不推荐
  • 一般般
  • 推荐
  • 强烈推荐
提交

最新文章

  • 关于写作技术型理论型文章的方法论
  • 还不会邮箱模板回复?博客实现评论回复邮箱提醒[WordPress]
  • Python类和类的实例化和构造器
2023年3篇
2022年8篇
2021年8篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hui-梦苑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源羽月希shuffle什么意思环保小卫士作文真相宋白羽怎么死的猪宝宝宝起名宜用的字生肖猴宝宝起名大全起名广字辈男孩名字好听初音岛3剧情网易经起名大全公司测试打分家纺公司起名字大全免费网上取名起名大全免费网络电台水木有关的起名大全起名五行属水的字女孩子起名带火的名字大全田姓猪宝宝起名起名丰泽什么意思网站广告招商琴行起哪些名字好雀圣1电影给男起英文名寓意太阳升起的名字被偏爱的有恃无恐言承旭电影一寸相片制作2012年1月17日宁荣荣被驯服的章节真三国无双83dm给树起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化