快速排序的基本思想:先随便在无序列表中找一个元素,以这个元素为基准,其他所有元素都跟该元素比,比该元素小的成为一个子序列,比该元素大的成为另一个子序列,接着重复此过程,最终达到排序效果。我们也用递归的方式来实现。
def quicksort(list):
if len(list) < 2:
return list
little = []
large = []
# 这里取出列表第一个元素
middle = list.pop(0)
for item in list:
if item < middle:
little.append(item)
else:
large.append(item)
return quicksort(little)+[middle]+quicksort(large)
print(quicksort([1,4,3,2,1]))
[1, 1, 2, 3, 4]
Process finished with exit code 0