算法 ·

快速排序的可视化之美

算法排序分治

快速排序是我最喜欢的算法之一。第一次看到它的动画演示时,我被分治思想的优雅深深震撼。

def quicksort(arr):
    if len(arr) <= 1:
        return arr
    pivot = arr[len(arr) // 2]
    left = [x for x in arr if x < pivot]
    middle = [x for x in arr if x == pivot]
    right = [x for x in arr if x > pivot]
    return quicksort(left) + middle + quicksort(right)

心得:实现之后才真正理解了递归的力量——把大问题不断拆小,直到简单到不值一提。这种思维方式不只适用于算法,生活中的复杂问题也一样。