数据结构 快速排序

class SortableArray:
    def __init__(self,array):
        self.array = array
    
    def mypartition(self,lp,rp):
        pivot_position = rp
        rp -= 1
        pivot = self.array[pivot_position]
        while True:
            while self.array[lp]<pivot:
                lp+=1
            while self.array[rp]>pivot:
                rp-=1
            if lp>=rp:
                break
            self.array[lp],self.array[rp] = self.array[rp],self.array[lp]
            #print(self.array)
        self.array[lp], self.array[pivot_position] = pivot, self.array[lp]
        #print(self.array)
        return lp
    
    def myquick(self,lidx,ridx):
        if lidx>=ridx:
            return
        pivot_position = self.mypartition(lidx,ridx)
        self.myquick(lidx,pivot_position-1)
        self.myquick(pivot_position+1,ridx)
ls = [0,5,2,1,6,3]
pp = SortableArray(ls)
pp.myquick(0, len(ls)-1)
pp.array

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值