二分查找算法 python实现
二分查找算法 python实现
二分查找的具体内容请看这篇文章。
二分查找需要满足的条件有两个:
1.查找的数量只能是一个
2.不能是多个 查找的对象在逻辑上必须是有序的
在个人学习算法得时候,有幸看过一本书,《算法图解》书中将一些算法用图画得例子形象得描述了出来,并且通过代码进行了相关算法的实现,以下是个人的部分学习内容,如有网友看到,希望能够对你有所帮助。
;
def binary_search(list,item):"""二分查找方法"""low = 0 # 定义最小下标high = len(list)-1 # 定义最大下标while low <= high: #while循环,保证可以遍历到指定区域的元素,直到被被寻找的值和中间值相等mid = int((low + high)/2) # 寻找数组的中间值guess = list[mid] # 获取列表最中间的元素if guess == item: return mid # 进行条件判断,将中间值和被寻找的值进行比较,相等则返回该值if guess > item: high = mid-1 # 如果被寻找的值小于中间值,则最大下标变化为中间值的前一个元素下标else:low = mid + 1 # 如果被寻找的值大于中间值,则最小下标变化为中间值的后一个元素下标return None
my_list = [1,2,3,4,5,6,7,8,9,10,12,14]
print(binary_search(my_list,7)) # 输入一个有序列表和一个被寻找的值
以上就是二分查找的python代码了,需要的网友就仔细研究以下吧,基本每行代码都给了注释,希望可以帮助到你。
同时文中可能也出现了一些错误,如有网友发现,请及时给予指正,非常的感谢。
二分查找算法 python实现相关推荐
- 二分查找算法python实现_Python实现-二分查找算法(3种方法)
如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? lst = [2, 3, 5, 10, 15, 16, 18, 22, 26, 30, 32, 35, 41, 42, 43, 55, ...
- 二分查找算法(Python)
文章目录 介绍 前提 时间复杂度 原理 介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 ...
- 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 ...
- python 二分查找_二分查找算法总结
二分查找的思想是通过每次折半快速找到一个数,例如,我们经常玩的游戏猜数字,在0~1000,随便出一个数字98让对方猜,首先猜500,对方给提示比500大还是小,如果数字小于500,就继续猜250,依次 ...
- Python二分查找算法
二分查找算法 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,6 ...
- python二分查找算法_如何使用python的二分查找算法
如何使用python的二分查找算法 发布时间:2020-11-18 09:27:29
- python函数教程:Python递归函数 二分查找算法实现解析
这篇文章主要介绍了Python递归函数 二分查找算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.初始递归 递归函数:在一个函数里在调 ...
- python折半查找算法_跟黄哥学python序列文章之python二分查找算法
在计算机科学中,二分查找算法(binary search).也称折半搜索(英语:half-interval search), 二分搜索法.二分搜索.二分探索,是一种在有序数组中查找某一特定元素的搜索算 ...
- python二分之紧凑形式_python实现二分查找算法
介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 前提 必须待查找的序列有序 时间复杂 ...
最新文章
- 【Harvest源码分析】获取F0轮廓
- qt toutf8函数_qt中的toUtf8, toLatin1, Local8bit, toUcs4(转)
- AI用50个三角形画出抽象版蒙娜丽莎,有股后现代的感觉了 | 谷歌大脑出品
- hdu 1881(简单01背包)
- 接视频Java 数据库
- c++语言 自己构造函数 成员对象构造函数 调用顺序,C++类成员构造函数和析构函数顺序示例详细讲解...
- 代码整洁之道--思维导图
- 单片机wifi模块与服务器通信协议,单片机常用的几种通信协议
- c语言编程题一空几分,C语言编程规范试题
- UVA - 10817 Headmaster's Headache
- 精选| 2019年2月R新包推荐
- 17. 促销,市场营销和内容页
- 2021电工杯B题股票预测思路分析程序示例及参考文献
- esp32~MP3音频文件学习
- CDRX6启动失败 提示尝试重新启动计算机和应用程序的解决方法
- 《深入理解Java虚拟机》内存管理机制 部分 读书笔记
- EMQ X 存储消息到 MySQL 数据库
- 谈谈CornerStone这个工具的使用
- 开源社区——自我成长的策源地
- STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)
热门文章
- Java如何实现任务超时处理
- 大学生开学必备物品清单,男生超喜欢的数码好物
- c语言欺凌,首次对学生欺凌进行定义!未成年人保护法作出大幅修订
- 性能测试面试题汇总(一)
- 【名场面临摹 之 马里奥·奥德赛】3.1 马里奥的闲置(Idle)动画
- Google Analytics cookie内容详解 Read more: http://bluewhale.cc/2010-01-24/google-analytics-cookie.html#
- .net core 同步锁/异步锁
- 复现PTA人事机考照片审核的功能
- 数据分析——数据展现
- 挑战与机遇:林郑月娥这些话,透露香港2019发展方向