今天见到一个很棒的快排算法,只用三行语句就完成了:
def qsort(L):
if len(L) <= 1: return L
return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1]+ qsort([ge for ge in L[1:] if ge >= L[0]])
接下来我们测试一下,写一些测试语句:
def qsort(L):
if len(L) <= 1:
print("hi")
print(L)
return L
return qsort([lt for lt in L[1:] if lt < L[0]]) + L[0:1]+ qsort([ge for ge in L[1:] if ge >= L[0]])
iList = [3,14,2,12,9,33,99,35]
print(qsort(iList))
print(iList[0:1])
print(iList[0])
运行一下:
画图详细解析:
仔细看看,是不是很精巧呢