数据结构之快排(python实现)

受益于一位前辈的快排博客,感谢感恩开源,记录一下用python实现的快排~

主要思想:分而治之

以基准数为分界线,左边比其小,右边比其大

1.i=L,j=R,取出基准数s[i],形成第一个坑

2.j--由后向前找比基准数小的数,找到后填到前一个坑s[i]中

3.i++由前向后找比基准数大的数,找到后填到第一个坑s[j]中

4.重复2,3步,直到i=j,将基准数填入到坑s[i]中

def adjust_array(s,l,r):#s代表list,l代表left_index,r代表right_index
    i,j=l,r
    x=s[i]
    while i<j:
        while i<j and s[j]>x:
            j-=1
        if i<j:
            s[i]=s[j]
            i+=1
        while i<j and s[i]<x:
            i+=1
        if i<j:
            s[j]=s[i]
            j-=1
    s[i]=x
    return i

def quick_sort(s,l,r):
    if l<r:
        i=adjust_array(s,l,r)
        quick_sort(s,l,i-1)
        quick_sort(s,i+1,r)      
    return s


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值