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