• 使用快排的思想
  • 空间复杂度很垃圾, 只是为了更好的理解快排算法
  • TODO 修改成不需要额外空间的算法
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
def quicksort(data: list):
    if len(data) <= 1:
        return data
    less = []
    more = []
    pivot = data[0]
    for item in data:
        if item < pivot:
            less.append(item)
        elif item > pivot:
            more.append(item)
    return quicksort(less) + [pivot] + quicksort(more)


data = [1, 4, 2, 6, 3, 10, 12, 11]

print(quicksort(data))