python 快速排序

快速排序:快速排序算法 时间复杂度为(Nlogn),最坏时间复杂度n的平方
直接看代码

#li是列表,fist,end是前后指针,在列表的第一个元素下标和最后一个元素下标
def quick_sort(li, fist, end):
    #如何前后指针相等时要推出循环
    if fist >= end:
        return
    #第一个元素最为基数
    jishu = li[fist]
    left = fist
    right = end
    #前元素如何下标如果小于后元素下标,一直循环
    while left < right:
        #判断这个右边元素是否大于基数,如何大于则移动下标,否则交换前后下标元素
        while li[right] >= jishu and left < right:
            right -= 1
        else:
            li[left] = li[right]
        #道理同上
        while li[left] < jishu and left < right:
            left += 1
        else:
            li[right] = li[left]
    #找到基数应该在的位置
    li[left] = jishu
    #将列表根据基数所在位置分成两个子列表,继续循环
    quick_sort(li, fist, left - 1)
    quick_sort(li, left + 1, len(li) - 1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值