二分查找:

在一段数字内,找到中间值,判断要找的值和中间值大小的比较。

如果中间值大一些,则在中间值的左侧区域继续按照上述方式查找。

如果中间值小一些,则在中间值的右侧区域继续按照上述方式查找。

直到找到我们希望的数字。

def search_data(data,data_find):

# 中间值的索引号的定义:数组长度/2

mid = int(len(data)/2)

# 判断从1开始的数字数组内查找

if data[mid] >= 1:

# 如果我们要找的值(data_find)比中间值(data[mid])小

if data[mid] > data_find:

print("你要找的数字比中间值[%s]小..." % data[mid])

# 在中间值(data[mid])的左侧继续查找,在此函数中继续循环

search_data(data[:mid],data_find)

# 如果我们要找的值(data_find)比中间值(data[mid])大

elif data[mid] < data_find:

print("你要找的数字比中间值[%s]大..." % data[mid])

# 在中间值(data[mid])的右侧继续查找,在此函数中继续循环

search_data(data[mid:],data_find)

else:

# 如果我们要找的值(data_find)既不比中间值(data[mid])大,也不比中间值(data[mid])小,则就是它

print("这就是你要找的[%s]!" % data[mid])

else:

print("不好意思,没有找到你要的值...")

if __name__ == '__main__':

# 创建一个1到6000万的连续数字数组

data = list(range(60000000))

# 调用函数找到95938的值

search_data(data,95938)

android二分查找法简书,【PYTHON】二分查找算法相关推荐

  1. 经典算法之左边界二分查找法(俗称左边界二分搜索法)

    经典算法之左边界二分查找法(俗称左边界二分搜索法) 文章目录 经典算法之左边界二分查找法(俗称左边界二分搜索法) 前言 一.什么左边界二分查找法? 二.代码实现 总结 前言 就算法而言,我们主要学习的 ...

  2. 线性查找法java代码_Java线性查找和二分查找

    Java线性查找和二分查找. 一 线性查找 定义:在一列给定的值中进行搜索,从一端开始逐一检查每个元素,直到找到所需元素的过程. 线性查找又称为顺序查找.如果查找池是某种类型的一个表,比如一个数组,简 ...

  3. python list查找元素_使用python list 查找所有匹配元素的位置实例

    使用python list 查找所有匹配元素的位置实例 如下所示: import re word = "test" s = "test abcdas test 1234 ...

  4. 递归折半查找法 c语言程序,折半查找法的递归和非递归形式

    /* 1.折半查找的查找过程是:先确定待查记录所在区间,然后逐步缩小范围至到找到或者找不到该记录为止. 2.折半查找的性能分析可以由判定树得出,折半查找在查找成功时给定值进行比较的关键字个数至多为⌊l ...

  5. python从键盘输入一个列表计算输出元素的平均值_python列表查找值_在Python中查找列表平均值的5种方法...

    python列表查找值 Hi Folks! In this article, we will have a look at the various ways to find the average o ...

  6. 【C语言】用二分查找法在有序数组中查找具体的某个数

    当给定一个有序数组,而我们要在这个数组中查找某个数时,我们常常用从头到尾的排除法遍历寻找,但是这种方式及其低效,n个数的数组最差要找n次.而后面我们会知道,二分查找法则高效的多,最差要找log以2为低 ...

  7. android 名片识别 简书,python 腾讯API 名片识别 通用图片转文字

    记录名片识别和图片转文字. 腾讯AI开放平台提供的名片OCR很强大, 而且可以免费使用, 所以本文使用的是腾讯AI开放平台. 腾讯AI开放平台API调用需要注意签名方法, 请查看之前文章传送门 名片O ...

  8. 简书python自动化运维_简明Python开发教程(4):网络自动化运维的曙光

    写在前面 本打算自动登陆一台路由器,执行查询配置指令,然后用正则表达式分析,获取该路由器的接口连接关系. 现在由于网络问题,导致无法直接telnet路由器,只能通过其他方式获取配置文件,如读取本地文件 ...

  9. 简书python数据分析基础reading_Python数据分析基础ReadingDay5_sqlite3

    reading Foundations for Analysis with Python Day 5 <Python数据分析基础>封面 这篇笔记开始记录数据库的内容,会用两篇笔记分别讲述P ...

最新文章

  1. LeetCode简单题之只出现一次的数字
  2. 网页测试本地服务器_音视频开发搭建一个直播服务器
  3. myeclipse按.自动提示方法
  4. 为什么 WebAssembly 更快?
  5. Ubuntu: 为firefox安装flash插件
  6. 两种方式调试JNI中DLL(动态链接库)
  7. elementui 隐藏输入框_elementui select下拉框输入完全匹配值则下拉隐藏
  8. (持续更新)webstorm快捷键及术语翻译
  9. 【APP接口开发】常用HTTP响应头状态码详解
  10. word List 31
  11. 京东抢购助手_[Windows] 京东极速抢购助手V2.0,支持京东健康+扫货抢购
  12. Nat. Commun.|北京大学吴华君,基因组3D结构调控胚胎干细胞分化
  13. 小学计算机教案表格式,小学信息技术教案表格数据处理.docx
  14. TCP的慢启动、拥塞避免、重传、快恢复乱七八糟总是记不清?11个连环问让你一次性打通任督二脉
  15. 2017.12.19
  16. 退出Activity
  17. java 区间api_Java 常用API(一)
  18. 学习PyQt5(四):PyQt5的控件Spacers
  19. wow.js动画插件
  20. ibator mysql 分页,ZUI分页器的使用案例(ECLIPSE SMS项目)

热门文章

  1. 经验分享:三步走教你升级企业NAS设备
  2. 生成GUID唯一值的方法汇总(dotnet/javascript/sqlserver)
  3. 云服务器与传统服务器的优势差异
  4. Kindeditor放置两个调用readonly错误
  5. Mac nginx PCRE install ngnix
  6. java实现颜色Color对象和16进制之间的转换
  7. Struts2中action接受参数方法
  8. Xvid编码器流程(基于xvid1.1.0)
  9. 【机器学习——决策树】——两种方法实现,含模型的保存和调用
  10. 【pyqt5学习】——进度条progressBar