def bb(a,low,high):
if low<high:
c=low#c是要找的位置
d=a[high]
for i in range(low,high):
if a[i]<d:
a[c],a[i]=a[i],a[c]
c+=1
a[c],a[high]=a[high],a[c]
bb(a,low,c-1)
bb(a,c+1,high)
a=[21,3,12,6,2,87,45,21,17]
bb(a,0,8)
a=[32,6,34,517,76,53,31,4,2,47,11,54,62,23,54,12,9,5]
#a1=[4,57,76,78]
def ff(lis,begi,end):
if begi<0 or begi>=end:
return
start_begi=begi
start_end=end
begi+=1
while begi<end:
while begi<end and lis[begi]<=lis[start_begi]:
begi+=1
while begi<end and lis[end]>=lis[start_begi]:
end-=1
lis[begi],lis[end]=lis[end],lis[begi]
if lis[start_begi]<=lis[end]:
a[start_begi],a[end-1]=a[end-1],a[start_begi]
ff(lis,start_begi,end-2)
ff(lis,end,start_end)
else:
a[start_begi],a[end]=a[end],a[start_begi]
ff(lis,start_begi,end-1)
ff(lis,end+1,start_end)
print (a)
ff(a,0,len(a)-1)
print (a)