返回顶部
首页 > 资讯 > 后端开发 > Python >使用Python实现二分法查找的示例
  • 534
分享到

使用Python实现二分法查找的示例

Python二分法Python二分查找 2023-05-17 14:05:50 534人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

关于二分法的定义我就不说了,CSDN很多大牛和前辈都已经阐述的很清楚了,直接上代码。 首先,先创建一个名称为 binary_search 的函数:传递两个参数,元素列表和要查找的值。

关于二分法的定义我就不说了,CSDN很多大牛和前辈都已经阐述的很清楚了,直接上代码。

首先,先创建一个名称为 binary_search 的函数:传递两个参数,元素列表和要查找的值。

def binary_search(_list, value):

接下来,在函数内部定义所需的变量,二分法的关键在于从列表的中间向两侧查找(表述可能不严谨,大概这个意思),所以为了直观起见,定义 left,right, mid 三个变量,分别代表:列表的起始索引,结束索引和中间索引。

    left = 0   # 列表的起始索引
    right = len(_list)   # 列表的结束索引
    mid = int((left + right)/2)  # 采用此方法,通过四舍五入刚好可以定位到列表的中间位置

接下来是实现二分查找的关键部分,先定义一个while循环,使得查找可以顺利进行,while函数内嵌套 if 分支语句实现条件判断,共有三种情况:

1. _list[mid] == value: 中间值恰好是我们需要查找的值,那么直接返回对应的索引就可以了。

2. _list[mid] > value: 要查找的值在mid的左侧,更新right 的值为mid,缩小查找范围。

3._list[mid] < value:要查找的值在mid的右侧,更新left 的值为mid,到 mid 右侧进行查找。

最后,对mid的值做一下更新,以便开始下一轮查找,同时采用 while-else语句针对没有查找到的情况进行判断,并给定一个返回值。

    while left < right:
        if _list[mid] == value:
            return mid
        elif _list[mid] > value:
            right = mid
        else:
            left = mid
        mid = int((right + left)/2)
    else:
        return -1

最后,完整代码,以及测试运行表现如下:

""" a demo realize binary search"""
 
 
def binary_search(_list, value):
    left = 0   # 列表的起始索引
    right = len(_list)   # 列表的结束索引
    mid = int((left + right)/2)  # 采用此方法,通过四舍五入刚好可以定位到列表的中间位置
    while left < right:
        if _list[mid] == value:
            return mid
        elif _list[mid] > value:
            right = mid
        else:
            left = mid
        mid = int((right + left)/2)
    else:
        return -1
 
 
index = "the index of value in the list: {}"
print(index.fORMat(binary_search([1, 2, 3, 4, 5, 6, 7, 8, 9], 1)))

运行结果:

 没有要查找的值的情况:

到此这篇关于使用python实现二分法查找的示例的文章就介绍到这了,更多相关Python实现二分法查找内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用Python实现二分法查找的示例

本文链接: https://lsjlt.com/news/211200.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 使用Python实现二分法查找的示例
    关于二分法的定义我就不说了,CSDN很多大牛和前辈都已经阐述的很清楚了,直接上代码。 首先,先创建一个名称为 binary_search 的函数:传递两个参数,元素列表和要查找的值。...
    99+
    2023-05-17
    Python 二分法 Python二分查找
  • Python实现二分法查找及优化的示例详解
    目录1.二分查找的原理2.二分查找的实现3.二分查找的优化4.总结二分查找法(Binary Search)是一种在有序数组中查找某一特定元素的算法,它的思想是将数组从中间分成两部分,...
    99+
    2023-05-16
    Python实现二分法查找 Python二分法查找 Python查找
  • python二分法查找实例代码
    对于要搜索的元素越多,二分查找速度比简单查找快的更多 这是二分查找算法的优点,但二分算法也有缺点,二分算法只针对有序的列表,这样插入和删除就会很困难,因此,折半查找方法只适合不经常变...
    99+
    2024-04-02
  • 如何使用Python语言实现二分法查找
    这篇文章主要为大家展示了“如何使用Python语言实现二分法查找”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用Python语言实现二分法查找”这篇文章吧。前言:二分法也就是二分查找,它是...
    99+
    2023-06-29
  • Python语言实现二分法查找
    前言: 二分法也就是二分查找,它是一种效率较高的查找方法 假如公司新来了一个人,叫张三,他是你们公司第47个人,过了一段时间后,有些人呢看张三不爽,离职了,那这时候张三肯定不是公司第...
    99+
    2024-04-02
  • Java实现查找算法的示例代码(二分查找、插值查找、斐波那契查找)
    目录1.查找概述2.顺序查找3.二分查找3.1 二分查找概述3.2 二分查找实现4.插值查找4.1 插值查找概述4.2 插值查找实现5.斐波那契查找5.1 斐波那契查找概述5.2 斐...
    99+
    2024-04-02
  • python二分法查找怎么使用
    这篇文章主要讲解了“python二分法查找怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python二分法查找怎么使用”吧!对于要搜索的元素越多,二分查找速度比简单查找快的更多 这是...
    99+
    2023-06-25
  • JS中二分查找算法的示例分析
    这篇文章将为大家详细讲解有关JS中二分查找算法的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。二分法查找,也称折半查找,是一种在有序数组中查找特定元素的搜索算法。...
    99+
    2024-04-02
  • java 中二分法查找的应用实例
    java 中二分法查找的应用实例二分查找的前提是:数组有序 注意:mid的动态变化,否则出错!!!  实例代码:public class BiSearch { public static void main(St...
    99+
    2023-05-31
    java 二分法 ava
  • java实现二分法查找
    什么是二分法查找:二分法也就是折半查找,在有序的数列中查找指定的元素,设定最小索引(low)和最大索引(height-1)还有中间值mid((low+height-1)/2),这种查找,如果中间值比指定元素小让low=mid+1,如果中间值...
    99+
    2015-07-23
    java入门 java 实现 二分法查找
  • python二分查找法
    1、条件不是所有数据类型都可以应用二分查找法,他需要满足以下的条件:是一个有序序列(索引数组),且是已经排好序的序列.2、查找原理在一个有序序列中查找一个指定的数,如果首先和这个序列的中间数相比如果相等就找到返回,如果比这个中间数小,即在...
    99+
    2023-01-31
    python
  • python二分查找算法的递归实现方法
    本文实例讲述了python二分查找算法的递归实现方法。分享给大家供大家参考,具体如下: 这里先提供一段二分查找的代码: def binarySearch(alist, item): first = ...
    99+
    2022-06-04
    递归 算法 方法
  • 如何使用PHP实现顺序查找和二分查找算法
    这篇文章主要介绍了如何使用PHP实现顺序查找和二分查找算法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用PHP描述顺序查找和二分查找(也...
    99+
    2024-04-02
  • Python算法练习之二分查找算法的实现
    目录1. 算法描述2. 算法分析3. 算法思路4. 代码实现纯算法实现递归法实现1. 算法描述 二分法是一种效率比较高的搜索方法 回忆之前做过的猜数字的小游戏,预先给定一个小于100...
    99+
    2024-04-02
  • Java二分查找算法实例详解
    在本文中,我们将介绍二进制搜索相对于简单线性搜索的优势,并介绍它在 Java 中的实现。 1. 需要有效的搜索 假设我们在wine-selling业务和数以百万计的买家每天都访问我们...
    99+
    2022-11-13
    Java 二分查找算法
  • 如何使用二分法查找
    本篇内容介绍了“如何使用二分法查找”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! 1、二分法查找...
    99+
    2024-04-02
  • java二分法查找怎么实现
    java二分法查找怎么实现BinarySearch二分法查找,顾名思义就是要将数据每次都分成两份然后再去找到你想要的数据,我们可以这样去想,二分法查找很类似与我们平时玩的猜价格游戏,当你报出一个价格时裁判会告诉你价格相对于真实值的高低,倘若...
    99+
    2014-09-02
    java教程 java 二分法
  • java如何实现二分法查找
    小编给大家分享一下java如何实现二分法查找,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!二分法查找//前提必须是在有序的条件下...
    99+
    2024-04-02
  • Java怎么实现二分法查找
    这篇文章主要讲解了“Java怎么实现二分法查找”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java怎么实现二分法查找”吧!二分法查找概述二分查找也称折半查找(Binary Search),...
    99+
    2023-07-02
  • 用C语言实现二分查找算法
    目录一.前言二.二分查找法1.什么是二分查找法2.如何用c语言来实现二分查找法三.总结总结一.前言 假如今天我们需要在一个有序的数组中来寻找一个数的下标,就用"1,2,3,...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作