blob: a8449c9b913377df8e4fcb1773985b6633d6f9dc [file] [log] [blame]
quicksort = lambda a: qs1(a,0,len(a)-1) ; import a
qs1 = lambda a,lo,hi: qs2(a,lo,hi) if lo<hi else a ; import b
qs2 = lambda a,lo,hi: qs3(lo,hi,*qsp(a,lo,hi)) ; import c
qs3 = lambda lo,hi,a,p: qs1(qs1(a,p+1,hi),lo,p-1) ; import d
qsp = lambda a,lo,hi: qsp1(a,lo,hi,a[hi],lo,lo) ; import e
qsp1 = lambda a,lo,hi,p,i,j: qsp2(a,lo,hi,p,i,j,j<hi) ; import f
qsp2 = lambda a,lo,hi,p,i,j,c: qspt(a,lo,hi,p,i,j,qsp3 if c else qsp7); import g
qspt = lambda a,lo,hi,p,i,j,n: n(a,lo,hi,p,i,j) ; import h
qsp3 = lambda a,lo,hi,p,i,j: qsp4(a,lo,hi,p,i,j,a[j]<p) ; import i
qsp4 = lambda a,lo,hi,p,i,j,c: qspt(a,lo,hi,p,i,j,qsp5 if c else qsp6); import j
qsp5 = lambda a,lo,hi,p,i,j: qsp1(sw(a,i,j),lo,hi,p,i+1,j+1) ; import k
qsp6 = lambda a,lo,hi,p,i,j: qsp1(a,lo,hi,p,i,j+1) ; import l
qsp7 = lambda a,lo,hi,p,i,j: (sw(a,i,hi), i) ; import m
sw = lambda a,i,j: sw1(enumerate(a),i,j,a[i],(-1,a[j])) ; import n
sw1 = lambda a,i,j,ai,aj: sw2([aj if x[0]==i else x for x in a],j,ai) ; import o
sw2 = lambda a,j,ai: [ai if x[0]==j else x[1] for x in a] ; import p