快速排序python递归实现

快速排序python递归实现

# 快速排序python
def swap(list,i,j):
    """位置互换"""
    list[i], list[j] = list[j], list[i]
    return list

def QuickSort(list, start, end):
    if start < end:
        i,j = start,end
        base = list[i] # 设置基数
        while i < j:
            while i < j and list[j] >= base: # 从后往前找
                j -= 1
                
            swap(list,i,j) # 当找到比基数小的数与其互换位置

            while i < j and list[i] <= base: # 从前往后找
                i += 1

            swap(list, i, j) # 当找到比基数大的数与其互换位置
        
        # 递归
        QuickSort(list,start,i-1) 
        QuickSort(list,j+1,end)
        return list

list = [56,34,78,56,98,86,45,56,32,89,99,46,33,87,56]
res = QuickSort(list,0,len(list)-1)
print(res)

输出结果

/usr/bin/python3.5 /home/python/Desktop/test/快速排序.py
[32, 33, 34, 45, 46, 56, 56, 56, 56, 78, 86, 87, 89, 98, 99]

Process finished with exit code 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值