快速排序加选择排序
def fastSort1(x,s,e):
i=-1
flog=x[e]
for j in range(s,e-1):
if x[i]>flog:
x[i+1],x[j]=x[j],x[i+1]
i+=1
x[i+1],x[e]=x[e],x[i+1]
return i+1
def fastSort2(x,s,e):
if s>=e:
return
m=fastSort1(x,s,e)
fastSort2(x,s,m-1)
fastSort2(x,m+1,e)
#选择排序
def chooseSort(listx):
n=len(listx)
for i in range(n):
position=i
for j in range(i,n):
if x[position]>x[j]:
position=j
x[position],x[i]=x[i],x[position]
print x
if __name__=="__main__":
x=[1,5,2,3,2,6,3,4]
fastSort2(x,0,len(x)-1)
chooseSort(x)