117.info
人生若只如初见

python二分查找算法的代码怎么写

以下是一个简单的二分查找算法的Python代码实现:

def binary_search(arr, target):
    left = 0
    right = len(arr) - 1
    
    while left <= right:
        mid = (left + right) // 2
        
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    
    return -1

使用该算法时,需要传入一个有序的数组 arr 和要查找的目标值 target。函数会返回目标值在数组中的索引,如果目标值不在数组中,则返回 -1。

以下是一个使用示例:

arr = [2, 5, 8, 12, 16, 23, 38, 56, 72, 91]
target = 23

result = binary_search(arr, target)
if result != -1:
    print(f"目标值 {target} 在数组中的索引为 {result}")
else:
    print("目标值不在数组中")

输出:

目标值 23 在数组中的索引为 5

未经允许不得转载 » 本文链接:https://www.117.info/ask/fed45AzsLBQNeDFI.html

推荐文章

  • linux的python如何进行进程管理

    在Linux中,可以使用Python的内置库os和subprocess进行进程管理 使用os.system()执行外部命令: import os # 执行外部命令,例如:ls
    os.system("ls") 使用...

  • linux的python怎样进行系统调用

    在Linux中,Python可以通过os和sys库进行系统调用 使用os库: os库提供了许多与操作系统交互的函数。例如,要使用os.system()执行系统命令,可以这样做:
    i...

  • python中set怎样进行集合排序

    在Python中,可以使用sorted()函数对集合(set)进行排序。sorted()函数返回一个排序后的列表(list),而不是集合,因为集合本身是无序的。以下是一个示例:

  • python中set如何进行集合转换

    在Python中,可以使用集合(set)的内置方法进行集合转换。以下是一些常用的集合转换方法: 将列表转换为集合: my_list = [1, 2, 3, 4, 5]
    my_set = set(m...

  • python如何改变字体大小

    在Python中,要改变字体大小,需要使用相应的库来进行操作。下面是两种常用的方法: 使用tkinter库来创建图形用户界面,并通过设置字体属性来改变字体大小。可以...

  • python词云图片生成不出来怎么解决

    生成词云图片的过程中出现问题,可能是由于以下几个原因导致的: 缺少必要的库:确保已经正确安装了wordcloud库及其依赖库(如numpy、Pillow等)。可以使用pip命...

  • Python怎么定时执行某个方法

    可以使用time模块中的sleep函数来实现定时执行某个方法。
    首先,导入time模块:
    import time 然后,定义一个方法,表示要定时执行的内容:
    def m...

  • python列表切片的规则是什么

    Python列表切片的规则如下: 切片使用方括号([])来表示,格式为 [start:stop:step]。 start:表示切片的起始位置,默认为0(即列表的第一个元素)。
    stop...