Python(8) python中的冒泡排序、快速排序

本文深入探讨Python中的两种经典排序算法——冒泡排序和快速排序,包括它们的工作原理、实现代码和效率分析,帮助读者理解并掌握这两种排序方法。

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

'''
冒泡排序的概念:
取出列表中的当前值与下一个值进行比较,比较完成后,向列表的最后方或最前方浮动(一次浮动一个位置)
外层for循环->控制列表中余下比较元素的个数
内层for循环->控制当前循环比较的元素
'''
#冒泡排序
def maoPao(infos):
    for i in range(len(infos) - 1):
        for j in range(len(infos) - 1 - i):
            if infos[j] > infos[j+1]:
                infos[j],infos[j+1] = infos[j+1],infos[j]
    return infos

#列表lists使用冒泡从小到大排序
lists = [33,12,8,88,10,6,5,18]
res = maoPao(lists)
print(res)

'''
快排的概念:
取出需要排序的列表中的第一个(下面案例为取出第一个)或者最后一个元素,作为参照元素
使用for循环,拿列表中第[1:last](第二个到最后一个元素)依次和列表的第一个元素进行比较
如果for循环的当前元素比第一个元素大,则定义一个max列表,并把当前元素加入其中
如果for循环的当前元素比第一个元素小,则定义一个min列表,并把当前元素加入其中
若返回从小到大的排序,则使用 |min + 第一个值(列表中的比较元素)+ max| 返回
注意返回列表中的min和max列表,应使用递归函数,再次调用当前排序函数
最后在排序函数逻辑开始的地方
判断传入的列表(需要排序的列表)长度是否<=1(小于等于1)
如果满足<=1
则返回正在递归中的传入列表
'''
#快速排序(快排)
#普通写法
def quick(infos):
    if len(infos) <= 1:
        return infos
    mins = []
    maxs = []
    for v in infos[1:]:
        if v > infos[0]:
            maxs.append(v)
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值