二分查找算法 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实现相关推荐

  1. 二分查找算法python实现_Python实现-二分查找算法(3种方法)

    如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? lst = [2, 3, 5, 10, 15, 16, 18, 22, 26, 30, 32, 35, 41, 42, 43, 55, ...

  2. 二分查找算法(Python)

    文章目录 介绍 前提 时间复杂度 原理 介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列 ...

  3. 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 ...

  4. python 二分查找_二分查找算法总结

    二分查找的思想是通过每次折半快速找到一个数,例如,我们经常玩的游戏猜数字,在0~1000,随便出一个数字98让对方猜,首先猜500,对方给提示比500大还是小,如果数字小于500,就继续猜250,依次 ...

  5. Python二分查找算法

    二分查找算法 如果有这样一个列表,让你从这个列表中找到66的位置,你要怎么做? l = [2,3,5,10,15,16,18,22,26,30,32,35,41,42,43,55,56,66,67,6 ...

  6. python二分查找算法_如何使用python的二分查找算法

    如何使用python的二分查找算法 发布时间:2020-11-18 09:27:29

  7. python函数教程:Python递归函数 二分查找算法实现解析

    这篇文章主要介绍了Python递归函数 二分查找算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.初始递归 递归函数:在一个函数里在调 ...

  8. python折半查找算法_跟黄哥学python序列文章之python二分查找算法

    在计算机科学中,二分查找算法(binary search).也称折半搜索(英语:half-interval search), 二分搜索法.二分搜索.二分探索,是一种在有序数组中查找某一特定元素的搜索算 ...

  9. python二分之紧凑形式_python实现二分查找算法

    介绍 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 前提 必须待查找的序列有序 时间复杂 ...

最新文章

  1. 【Harvest源码分析】获取F0轮廓
  2. qt toutf8函数_qt中的toUtf8, toLatin1, Local8bit, toUcs4(转)
  3. AI用50个三角形画出抽象版蒙娜丽莎,有股后现代的感觉了 | 谷歌大脑出品
  4. hdu 1881(简单01背包)
  5. 接视频Java 数据库
  6. c++语言 自己构造函数 成员对象构造函数 调用顺序,C++类成员构造函数和析构函数顺序示例详细讲解...
  7. 代码整洁之道--思维导图
  8. 单片机wifi模块与服务器通信协议,单片机常用的几种通信协议
  9. c语言编程题一空几分,C语言编程规范试题
  10. UVA - 10817 Headmaster's Headache
  11. 精选| 2019年2月R新包推荐
  12. 17. 促销,市场营销和内容页
  13. 2021电工杯B题股票预测思路分析程序示例及参考文献
  14. esp32~MP3音频文件学习
  15. CDRX6启动失败 提示尝试重新启动计算机和应用程序的解决方法
  16. 《深入理解Java虚拟机》内存管理机制 部分 读书笔记
  17. EMQ X 存储消息到 MySQL 数据库
  18. 谈谈CornerStone这个工具的使用
  19. 开源社区——自我成长的策源地
  20. STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)

热门文章

  1. Java如何实现任务超时处理
  2. 大学生开学必备物品清单,男生超喜欢的数码好物
  3. c语言欺凌,首次对学生欺凌进行定义!未成年人保护法作出大幅修订
  4. 性能测试面试题汇总(一)
  5. 【名场面临摹 之 马里奥·奥德赛】3.1 马里奥的闲置(Idle)动画
  6. Google Analytics cookie内容详解 Read more: http://bluewhale.cc/2010-01-24/google-analytics-cookie.html#
  7. .net core 同步锁/异步锁
  8. 复现PTA人事机考照片审核的功能
  9. 数据分析——数据展现
  10. 挑战与机遇:林郑月娥这些话,透露香港2019发展方向