四种经典查找算法(python实现)

本文介绍了四种经典的查找算法在Python中的实现,包括顺序查找、二分查找、差值查找和二叉树查找。详细阐述了每种算法的思想、时间复杂度和空间复杂度,并给出了相应的代码实现。

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

四种经典排序算法(python实现)

  • 顺序查找
  • 二分查找
  • 差值查找
  • 二叉树查找

 

一、顺序查找

'''
顺序查找:
1.算法思想:顺序查找,对于一个无序序列,遍历数组中的所有元素,对比每一个元素是否和要查询
          元素相等
2.时间复杂度:o(n)
3.空间复杂度:o(1)
'''

代码实现:

def sequential_search(li, key):
    for i in range(len(li)):
        if li[i] == key:
            return i
    else:
        return False

if __name__ == "__main__":
    li = [1, 5, 8, 123, 22, 54, 7, 99, 300, 222]
    print(sequential_search(li, 54))
    print(sequential_search(li, 87))

 

二、二分查找

'''
二分查找:
1.算法思想:折半查找,对于一个有序序列
2.时间复杂度:o(logn),最优时间复杂度o(1)
3.空间复杂度:o(1)
'''

 

代码实现:

def binary_search(li, item):
    first = 0
    last = len(li) - 1

    while first <= last:
        midpoint = int((first + last) / 2)
        if li[midpoint] == item:
            return True
        elif item < li[midpoint]:
            last = midpoint - 1
        else:
            first = midpoint + 1
    return False

li = [0, 2, 3, 4, 5, 6]
print(binary_search(li, 5))
print(binary_search(li, 7))

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值