搜索算法02----有序列表的二叉搜索

本文介绍了一种高效的搜索算法——二分查找。该算法适用于已排序的列表,并通过不断缩小搜索范围来提高查找效率。文章提供了详细的算法实现步骤及Python代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于有序的列表(假设升序),我们可以估计目标项的大概位置。根据这一思路,我们能省去一些不必要的过程以达到快速搜索的目的。

过程:

1.找到列表的中间位置并与目的项进行比较。如果相等,则返回改位置
2.若不相等,假设目标项小于当前项,那么算法将搜索中间位置以前的部分,并重复上述操作(反之亦反)
def binarySearch(target, lyst):
    """Returns the position of the target item if found,
    or -1 otherwise."""
    left = 0
    right = len(lyst) - 1
    while left <= right:
        midpoint = (left + right) // 2
        if target == lyst[midpoint]:
            return midpoint
        elif target < lyst[midpoint]:
            right = midpoint - 1
        else:
            left = midpoint + 1
    return -1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值