搜索常见算法:顺序查找,二分法查找,哈希查找,下面是二分查找的实现方式

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

  1. python实现二分查找(折半查找)算法

    python实现二分查找算法 二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法.但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列. 查找又称折半 ...

  2. python中二分查找什么意思_python中二分查找法的实现方法

    如果想要在有序数据中进行查找想要的数据,二分查找法就个好方法,它可以大大缩短了搜索时间,是一种常见的查找方法.二分查找很好写,却很难写对,下面,小编就简单向大家介绍一下二分查找,并演示器使用代码. 1 ...

  3. 七十六、Python | Leetcode二分查找和分治算法系列

    @Author:Runsen @Date:2020/7/4 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏艰 ...

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

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

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

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

  6. python实现二分查找(对新手友好,内容通俗易懂)

    python实现二分查找 二分查找又名折半查找. 优点:查询速度快,性能好. 缺点:要求查询的表为有序表 原理:将表中间位置(mid)的数字与待查数字(data)做比较, 如果相等:返回true,结束 ...

  7. python实现二分查找代码+详解

    python实现二分查找代码+详解 一.规定函数值 函数输入值 li=[1,2,3,4,5,6,7,8,9]#输入的集合 val=4#要查找的值 函数内部值 left=0#代表集合中第一个值的位置 r ...

  8. Python实现二分查找算法,图片结合代码讲解,简单易懂

    Python实现二分查找算法,图片结合代码讲解,简单易懂 二分查找是指在一个数组中循环找到特定的目标元素的一种算法,二分查找算法要求这个数组必须是有序的,如果不是有序则最后得出的结果是不准确的,因为其 ...

  9. python实现二分查找_数据结构和算法:Python实现二分查找(Binary_search)

    在一个列表当中我们可以进行线性查找也可以进行二分查找,即通过不同的方法找到我们想要的数字,线性查找即按照数字从列表里一个一个从左向右查找,找到之后程序停下.而二分查找的效率往往会比线性查找更高. 一. ...

  10. 正确理解python中二分查找

    二分查找的原理: 1:查找的列表和元组是有序的 2:定义一个中间值的标志位,以这个标志位和要查找的元素进行比较 3:中间标志位=查找元素,查找成功 4:中间标志位>查找元素,要找的元素在左边 5 ...

最新文章

  1. 用意念就能控制的操作系统?这家华人团队做的脑机接口,3个电极实现脑波成像...
  2. android gradle错误,更新到Android Studio 2.3后出现Gradle错误
  3. opencv python 图像去噪
  4. 深度学习核心技术精讲100篇(五十八)- 如何量化医学图像分割中的置信度?
  5. 微信小程序_组件学习_001
  6. mysql查询后从高到低排序_[MySQL基础]三、排序查询
  7. 悟空php微信复制的东西在哪找,微信收藏的文件在哪?从哪里能看到?
  8. Cloud一分钟|茅台4.5亿入股云上贵州大数据,后者已接管苹果中国iCloud; 阿里云进入印度市场,增长速度远超当地平均水平...
  9. iOS开发,多个button数组,每个数组只能选中5项,多个数组只能选择3个。
  10. mysql 5.6.23 免安装_MYSQL 免安装版的环境配置
  11. 六个好用的程序员开发在线工具
  12. kotlin android 注解,注解 - Kotlin 语言中文站
  13. 用户计算机安装有512m内存,安装OFFICESCAN客户端(计算机内存要求512M以上)
  14. CorelDRAWX4的VBA插件开发(八)更改尺寸与移动
  15. matlab画柱状图
  16. 对话斯坦福商学院教授:颠覆大公司的不是技术,是商业模式
  17. Java多线程--1--stop方法
  18. 【考题·数学】矩阵游戏(数学推导)
  19. 巧妙的通过二维码在手机和电脑传递小量数据
  20. RealView MDK的指定位置

热门文章

  1. JVM - CMS深度剖析
  2. Spring JDBC-混合框架的事务管理
  3. php 处理html,PHP解析HTML代码
  4. Java中的nextInt()和next()与nextLine()区别详解
  5. Kotlin-如何创建一个好用的协程作用域
  6. CSS学习04之层次选择器
  7. HTML学习04之内联框架和表单
  8. c++语言常量,Go语言常量和const关键字
  9. 《深度探索C++对象模型》--4 Function语意学
  10. 利用SIFt特征点和RANSAC方法进行物体识别(利用openCV和vs2010实现)