快速排序算法,python版

a=[46,30,82,90,56,17,95,55,15,1,4,7,4]
#a=[15,30,17]
def qsort(a,start,end):
    if(len(a)<=1):
        return
    l = len(a)- 1
    i, j = start, end
    base = i
    cmp = j
    while(cmp!=base):
        if((a[cmp] < a[base] and cmp>base) or (a[cmp] > a[base] and cmp<base)):
            tmp = a[cmp]
            a[cmp] = a[base]
            a[base] = tmp
            tmpi = base
            base = cmp
            cmp = tmpi
        if(cmp<base):
            cmp=cmp+1
        else:
            cmp=cmp-1
    print(a[i:j+1],a[i:base],a[base+1:j+1],i,base-1,base+1,j)
    if(i<base-1 and i>=0 and base-1>=0 ):
        qsort(a,i,base-1)
    if(base+1<j and base+1 >=0 and j>=0):
        #print(a,base+1,j)
        qsort(a,base+1,j)

start=0
end = len(a)-1
qsort(a,start,end)
print(a)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值