Python数据结构——对有序表二分查找
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数据结构——对有序表二分查找相关推荐
- python数据结构: 有序表
1. 有序表 ❖有序表是一种数据项依照其某可比性质(如整数大小.字母表先后)来决定在列表中的位置 ❖越"小"的数据项越靠近列表的头,越靠"前" 2.抽象数据类型 ...
- python数据结构与算法:二分查找
二分查找:python 实现 def binary_seaech(alist,item):"""二分查找 递归实现"""n = len(al ...
- 数据结构与算法:二分查找
二分查找是搜索算法中的一种,用来搜索有序数组 二分查找: 是一种简单算法,其输入是一个有序的元素列表(必须有序的原因稍后解释).如果要 查找的元素包含在列表中,二分查找返回其位置:否则返回null. ...
- vue 怎么样不重复往数组里插入数据_前端数据结构与算法(1) -二分查找vs二叉树...
今天给大家开始介绍前端方面的数据结构,刚把vue源码过完就开始数据结构,可见它的地位有多重要.有人说我一前端又不是后端学这个数据结构干嘛,好吧,只能说你还没有这个意识,一是面试很多大厂就会考察,我面试 ...
- python有序列表无序列表区别_用Python链表实现有序表与无序表
用Python链表实现有序表与无序表 <数据结构与算法>MOOC(北大地空)课堂笔记 2020.4 by dlnb526 啥是链表 链表,顾名思义,顾名思义,链表像锁链一样,由一节节节点连 ...
- python线性表和队列_[笔记]python数据结构之线性表:linkedlist链表,stack栈,queue队列...
python数据结构之线性表 python内置了很多高级数据结构,list,dict,tuple,string,set等,在使用的时候十分舒心.但是,如果从一个初学者的角度利用python学习数据结构 ...
- c语言数据结构对学生信息折半查找,数据结构实训报告-二分查找学生管理实训报告.doc...
数据结构实训报告-二分查找学生管理实训报告 吉林工业职业技术学院 ( 数据结构实训 ) ( 20~ 2012 学年第 学期) 指导教师: 专业班级: 计算机3101 学生姓名: 2011年月日实训项目 ...
- Python 数据结构 之 线性表 的链式存储结构
用Python 来实现 C语言中 线性表的链式存储结构. 文章转载请注明: Python 数据结构 之 线性表 的链式存储结构 代码地址 https://github.com/WenkeZhou/P ...
- 有序数组二分查找最接近的值
有序数组二分查找最接近的值 问题 思路 代码 循环的终止条件 如何改为求upper_bound 问题 给你一个有序数组,数组里面有正有负,有重复值,再给你扔一个target 数,求这个数组中最接近ta ...
最新文章
- Jzoj4729 道路修建
- Windows驱动开发 - 派遣函数
- chrome浏览器最小字号解决方案
- 内核启动的C语言阶段——start_kernel函数
- Win10家庭版安装docker(WSL与WSL2两种安装方式)
- typedef struct和struct定义结构体的区别
- 拓端tecdat|t-GARCH 模型的贝叶斯推断理论
- chengg0769 近期文章列表 垂直搜索相关(2007-07-10)
- 【Jmeter配合switchyomega 脚本录制】
- 分分钟拥有哈利波特的隐身衣,还是在手机端的那种
- 林中鸟计算机弹奏,用现象证实现象这叫复试,计算机的计算只是计算,与经络的现象无关。气感循行...
- 《剑指Offer》力扣刷题笔记(03-10)
- 1553B总线基础知识及扩展
- kernel启动流程-start_kernel的执行_8.cpio initrd解包
- 北师大珠海分校2017国庆欢乐赛题解
- ettercap局域网DNS欺骗实现过程
- 【git系列】重命名文件后为何就是untracked状态了 以及 应该如何正规地修改文件呢
- break与continue--Java基础024
- bert 中文 代码 谷歌_从字到词,大词典中文BERT模型的探索之旅
- 特斯拉Autopilot软件重写