一种著名的递归式问题解决方法。
确定如何缩小问题的规模,使其符合基线条件。
D&C将问题逐步分解。使用D&C处理列表时,基线条件很可能是空数组或只包含一个元素的数组。
def quicksort(array):
    if len(array) < 2:
        return array
    # 基线条件:为空或只包含一个元素的数组是“有序”的
else:
    pivot = array[0]
    # 递归条件:由所有小于基准值的
    less = [i for i in array[1:] if i <= pivot]
    # 元素组成的子数组
    greater = [i for i in array[1:] if i > pivot]
    # 由所有大于基准值的元素组成的子数组
    return quicksort(less) + [pivot] + quicksort(greater)
print(quicksort([10, 5, 2, 3]))原文:https://www.cnblogs.com/everfight/p/grokking_algorithms_note_4.html