我想知道当你使用QuickSort时这个数组的Big-O是什么:
6 8 7 5 9 4
4
是我的Pivot元素。
我认为这将是具有O(nlogn)
复杂度的Best-Case,但我不是百分百肯定。
答案 0 :(得分:1)
快速排序的Big-O复杂性是二次的(O(n^2)
)。这意味着对于每个可能的输入,它将至少快速执行(或者如果你愿意的话,慢速执行)。
正如评论中所提到的,Big-O处理的是理论上的最坏情况,而不是特定的输入。对于特定输入,您可以计算绝对步数。
顺便说一下,快速排序(是吗?)非常受欢迎,不是为了获得良好的Big-O性能,而是为了在中等输入大小上获得良好的通常情况性能 - 而有些算法在{ {1}}(这也是理论上的限制 - 不能做得更好),它们在实际使用中往往较慢,因为它们具有更大的常量(即渐近更好的性能只表现在大量投入上。)