六、python实现快速排序

python实现快速排序
第一种(两个指针分别都两头开始)

#6.快速排序 时间复杂度O(nlogn) 空间复杂度O(logn)
def quick_sort(L,start,end):
    if start<end:
        i = start
        j = end
        pivot = L[start]
        while i<j:
            while L[j]>=pivot and i<j:
                j -= 1
            L[i], L[j] = L[j], L[i]
            while L[i]<=pivot and i<j:
                i += 1
            L[i],L[j]=L[j],L[i]
        quick_sort(L,start,i-1)
        quick_sort(L,i+1,end)
    return L
L=[5,6,4,8,2,1,7,3,0,1]
print(quick_sort(L,0,len(L)-1))

结果#[0, 1, 1, 2, 3, 4, 5, 6, 7, 8]
第二种方法 算法导论版本(两个指针都从头开始)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值