通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列
def func(list1):
if len(list1) < 2:
return list1
else:
start = 0
pivot = list1[start]
arr1 = [i for i in list1[start+1:] if i <= pivot]
arr2 = [i for i in list1[start+1:] if i >= pivot]
return func(arr1) + [pivot] + func(arr2)
import random
l1 = list(range(10))
random.shuffle(l1)
print("算法排序结果:", func(l1), "预期结果", sorted(l1))
assert func(l1) == sorted(l1)
"""
算法排序结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 预期结果 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""