📜  python 快速排序 - Python (1)

📅  最后修改于: 2023-12-03 15:19:09.690000             🧑  作者: Mango

Python 快速排序

快速排序(Quicksort)是一种经典的排序算法,它是由英国计算机科学家 Tony Hoare 在 1959 年发明的。快速排序的基本思想是选取一个基准数,将数组中小于基准数的数移到其左侧,大于基准数的数移到其右侧,然后对左右两个子数组重复上述操作,直到子数组无法再分割为止。以下为 python 实现。

代码实现
def quick_sort(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 quick_sort(left) + middle + quick_sort(right)
复杂度分析

快速排序的时间复杂度在最坏情况下是 O(n^2)。在平均情况下,快速排序的时间复杂度为 O(n log n)。空间复杂度为 O(log n)。

总结

快速排序是一种常用的排序算法,其时间复杂度在平均情况下是优于大部分排序算法的。但是,在最差情况下,快速排序的时间复杂度为 O(n^2),所以对于极端数据,我们需要特殊的优化处理。