Python实现二分查找
搜索常见算法:顺序查找,二分法查找,哈希查找,下面是二分查找的实现方式
# coding:utf-8
# 二分查找的前提:只能对有序列进行查找
def binary_search(alist,item):"""二分查找---递归实现"""n = len(alist)if n > 0:mid = n//2if item == alist[mid] :return Trueelif item < alist[mid]:return binary_search(alist[:mid],item)else:return binary_search(alist[mid+1:], item)else :return Falsedef binary_search_2(alist,item):"""二分查找---非递归版本"""n = len(alist)first = 0last = n-1while first <= last:mid = (first + last)//2if alist[mid] ==item:return True,midelif item < alist[mid]:last = mid - 1else:first = mid + 1return Falseif __name__ == "__main__":a = [1,5,6,10,11,13,18,37,99]print(a)sorted_list_11 = binary_search(a,1)print(sorted_list_11)sorted_list_12= binary_search(a, 88)print(sorted_list_12)sorted_list_21 = binary_search_2(a, 18)print(sorted_list_21)sorted_list_22 = binary_search_2(a, 88)print(sorted_list_22)# [1, 5, 6, 10, 11, 13, 18, 37, 99]
# True
# False
# (True, 6)
# False
转载于:https://blog.51cto.com/10777193/2395379
Python实现二分查找相关推荐
- python实现二分查找(折半查找)算法
python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...
- python中二分查找什么意思_python中二分查找法的实现方法
如果想要在有序数据中进行查找想要的数据,二分查找法就个好方法,它可以大大缩短了搜索时间,是一种常见的查找方法.二分查找很好写,却很难写对,下面,小编就简单向大家介绍一下二分查找,并演示器使用代码. 1 ...
- 七十六、Python | Leetcode二分查找和分治算法系列
@Author:Runsen @Date:2020/7/4 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...
- python二分查找算法_如何使用python的二分查找算法
如何使用python的二分查找算法 发布时间:2020-11-18 09:27:29
- python函数教程:Python递归函数 二分查找算法实现解析
这篇文章主要介绍了Python递归函数 二分查找算法实现解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.初始递归 递归函数:在一个函数里在调 ...
- python实现二分查找(对新手友好,内容通俗易懂)
python实现二分查找 二分查找又名折半查找. 优点:查询速度快,性能好. 缺点:要求查询的表为有序表 原理:将表中间位置(mid)的数字与待查数字(data)做比较, 如果相等:返回true,结束 ...
- python实现二分查找代码+详解
python实现二分查找代码+详解 一.规定函数值 函数输入值 li=[1,2,3,4,5,6,7,8,9]#输入的集合 val=4#要查找的值 函数内部值 left=0#代表集合中第一个值的位置 r ...
- Python实现二分查找算法,图片结合代码讲解,简单易懂
Python实现二分查找算法,图片结合代码讲解,简单易懂 二分查找是指在一个数组中循环找到特定的目标元素的一种算法,二分查找算法要求这个数组必须是有序的,如果不是有序则最后得出的结果是不准确的,因为其 ...
- python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)
在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...
- 正确理解python中二分查找
二分查找的原理: 1:查找的列表和元组是有序的 2:定义一个中间值的标志位,以这个标志位和要查找的元素进行比较 3:中间标志位=查找元素,查找成功 4:中间标志位>查找元素,要找的元素在左边 5 ...
最新文章
- 用意念就能控制的操作系统?这家华人团队做的脑机接口,3个电极实现脑波成像...
- android gradle错误,更新到Android Studio 2.3后出现Gradle错误
- opencv python 图像去噪
- 深度学习核心技术精讲100篇(五十八)- 如何量化医学图像分割中的置信度?
- 微信小程序_组件学习_001
- mysql查询后从高到低排序_[MySQL基础]三、排序查询
- 悟空php微信复制的东西在哪找,微信收藏的文件在哪?从哪里能看到?
- Cloud一分钟|茅台4.5亿入股云上贵州大数据,后者已接管苹果中国iCloud; 阿里云进入印度市场,增长速度远超当地平均水平...
- iOS开发,多个button数组,每个数组只能选中5项,多个数组只能选择3个。
- mysql 5.6.23 免安装_MYSQL 免安装版的环境配置
- 六个好用的程序员开发在线工具
- kotlin android 注解,注解 - Kotlin 语言中文站
- 用户计算机安装有512m内存,安装OFFICESCAN客户端(计算机内存要求512M以上)
- CorelDRAWX4的VBA插件开发(八)更改尺寸与移动
- matlab画柱状图
- 对话斯坦福商学院教授:颠覆大公司的不是技术,是商业模式
- Java多线程--1--stop方法
- 【考题·数学】矩阵游戏(数学推导)
- 巧妙的通过二维码在手机和电脑传递小量数据
- RealView MDK的指定位置
热门文章
- JVM - CMS深度剖析
- Spring JDBC-混合框架的事务管理
- php 处理html,PHP解析HTML代码
- Java中的nextInt()和next()与nextLine()区别详解
- Kotlin-如何创建一个好用的协程作用域
- CSS学习04之层次选择器
- HTML学习04之内联框架和表单
- c++语言常量,Go语言常量和const关键字
- 《深度探索C++对象模型》--4 Function语意学
- 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)