python 递归快速排序

递归快速排序

def merge(num):
    if len(num)==1 or len(num)==0:
        return num
    tmp=num[0]
    low=0
    high=len(num)-1
    while low!=high:
    #先从后往前看找到比目标值小的元素,将这个元素换到low的位置
        while num[high]>=tmp and low < high:
            high=high-1
        num[low]=num[high]
    #再从前往后看找到比目标值大的元素,将这个元素换到high的位置
        while num[low]<tmp and low < high:
            low=low+1
        num[high]=num[low]
    num[low]=tmp#当low和high重合的时候,说明已经找到目标值的位置,将目标值赋值给这个位置
    num[:low]=merge(num[:low])#再递归进去对左右两半部分进行继续快速排序
    num[high+1:]=merge(num[high+1:])
    return num
merge(nums)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值