list= [1, 5, 6, 9, 10, 51, 62, 65, 70]

查找5时:

[1, 5, 6, 9, 10, 51, 62, 65, 70]        low=0    high=9    mid=(0+8)//2=4    list[mid]=list[4]=10

5<10:                                              low=0    high=3    mid=(0+3)//2=1   list[mid]=list[1]=5

5==5:                                              查找成功。返回下标mid=1

# -*- coding:utf-8 -*-
# file: pyBinarySearch.py
#
def BinarySearch(l, key):                           # 二分查找low = 0high = len(l) - 1i = 0while (low <= high):i = i + 1mid = (high + low) // 2if (l[mid] < key):low = mid + 1elif (l[mid] > key):high = mid - 1else:print('use %d time(s)' % i)return midreturn -1
if __name__ == '__main__':l = [1, 5, 6, 9, 10, 51, 62, 65, 70]         # 构造列表print(BinarySearch(l, 5))                     # 在列表中查找print(BinarySearch(l, 10))print(BinarySearch(l, 65))print(BinarySearch(l, 70))

运行结果:

Python 3.6.1 (v3.6.1:69c0db5, Mar 21 2017, 18:41:36) [MSC v.1900 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> RESTART: G:\pyBinarySearch.py
use 2 time(s)
1
use 1 time(s)
4
use 3 time(s)
7
use 4 time(s)
8

Python数据结构——对有序表二分查找相关推荐

  1. python数据结构: 有序表

    1. 有序表 ❖有序表是一种数据项依照其某可比性质(如整数大小.字母表先后)来决定在列表中的位置 ❖越"小"的数据项越靠近列表的头,越靠"前" 2.抽象数据类型 ...

  2. python数据结构与算法:二分查找

    二分查找:python 实现 def binary_seaech(alist,item):"""二分查找 递归实现"""n = len(al ...

  3. 数据结构与算法:二分查找

    二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...

  4. vue 怎么样不重复往数组里插入数据_前端数据结构与算法(1) -二分查找vs二叉树...

    今天给大家开始介绍前端方面的数据结构,刚把vue源码过完就开始数据结构,可见它的地位有多重要.有人说我一前端又不是后端学这个数据结构干嘛,好吧,只能说你还没有这个意识,一是面试很多大厂就会考察,我面试 ...

  5. python有序列表无序列表区别_用Python链表实现有序表与无序表

    用Python链表实现有序表与无序表 <数据结构与算法>MOOC(北大地空)课堂笔记 2020.4 by dlnb526 啥是链表 链表,顾名思义,顾名思义,链表像锁链一样,由一节节节点连 ...

  6. python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...

    python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...

  7. c语言数据结构对学生信息折半查找,数据结构实训报告-二分查找学生管理实训报告.doc...

    数据结构实训报告-二分查找学生管理实训报告 吉林工业职业技术学院 ( 数据结构实训 ) ( 20~ 2012 学年第 学期) 指导教师: 专业班级: 计算机3101 学生姓名: 2011年月日实训项目 ...

  8. Python 数据结构 之 线性表 的链式存储结构

    用Python 来实现 C语言中 线性表的链式存储结构. 文章转载请注明:  Python 数据结构 之 线性表 的链式存储结构 代码地址 https://github.com/WenkeZhou/P ...

  9. 有序数组二分查找最接近的值

    有序数组二分查找最接近的值 问题 思路 代码 循环的终止条件 如何改为求upper_bound 问题 给你一个有序数组,数组里面有正有负,有重复值,再给你扔一个target 数,求这个数组中最接近ta ...

最新文章

  1. Jzoj4729 道路修建
  2. Windows驱动开发 - 派遣函数
  3. chrome浏览器最小字号解决方案
  4. 内核启动的C语言阶段——start_kernel函数
  5. Win10家庭版安装docker(WSL与WSL2两种安装方式)
  6. typedef struct和struct定义结构体的区别
  7. 拓端tecdat|t-GARCH 模型的贝叶斯推断理论
  8. chengg0769 近期文章列表 垂直搜索相关(2007-07-10)
  9. 【Jmeter配合switchyomega 脚本录制】
  10. 分分钟拥有哈利波特的隐身衣,还是在手机端的那种
  11. 林中鸟计算机弹奏,用现象证实现象这叫复试,计算机的计算只是计算,与经络的现象无关。气感循行...
  12. 《剑指Offer》力扣刷题笔记(03-10)
  13. 1553B总线基础知识及扩展
  14. kernel启动流程-start_kernel的执行_8.cpio initrd解包
  15. 北师大珠海分校2017国庆欢乐赛题解
  16. ettercap局域网DNS欺骗实现过程
  17. 【git系列】重命名文件后为何就是untracked状态了 以及 应该如何正规地修改文件呢
  18. break与continue--Java基础024
  19. bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅
  20. 特斯拉Autopilot软件重写

热门文章

  1. 沟通的艺术:看人入里,看出人外 - part 2
  2. 企企通携手“浙江制造”品牌【安诺化学】,一站式采购管理助推企业数字化建设
  3. VSCode 壁纸插件 背景播放视频插件
  4. 开源GPU显存虚拟化项目,你的2080Ti还能救一下
  5. 英伟达RTX 4070 Ti显卡正式发布!你会买吗?
  6. 服务器软件要如何维护
  7. 区块链市场——专为用户打造的一站式应用下载平台
  8. 如何做好项目规划?以及项目规划常用的管理软件盘点
  9. 【Scapy】获取流量包【原创】
  10. 自然语言处理实战:机器学习常见工具与技术