📅  最后修改于: 2023-12-03 15:19:09.690000             🧑  作者: Mango
快速排序(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),所以对于极端数据,我们需要特殊的优化处理。