时间复杂度快速排序

时间:2021-02-22 06:39:29

标签: algorithm sorting time-complexity big-o quicksort

我最近在学习时间复杂度。当我试图找到快速排序的大 O 时,我在互联网上看到说快速排序的最佳情况性能为 O(n log n),而最坏情况性能为 O(n^2)。据我所知,大 O 表示法描述了算法的上限,并说明了其最坏情况下的性能。为什么说“quicksort 的最佳情况性能为 O(n log n)”?我认为 Big O 是用来描述最坏情况的表现。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为 QuickSort 中很少出现最坏情况的性能 - 您必须非常不幸地对输入进行分区,以便您的枢轴始终是该输入中最小或最大的元素。

由于与最佳情况相同的平均情况性能在大多数情况下都会发生,因此人们会选择提及这一点或两者兼而有之。我认为许多具有内置排序功能的编程语言已经为其功能实现了 QuickSort(但不是针对每种类型的输入)。可见这个算法的强大。

您可能还会发现这篇文章很有用:Analysis of quicksort