Quicksort在O(n ^ 2)时间内运行?

时间:2013-04-12 18:06:42

标签: quicksort

任何人都可以解释为什么quicksort的最坏情况运行时是O(n ^ 2)以及为什么这很罕见?

1 个答案:

答案 0 :(得分:6)

如果每次都以最糟糕的方式选择枢轴,而不是分成两个大小为n / 2的列表,它将分为1和1中的一个,大小为n-1。这导致n的递归深度和总时间n ^ 2。

这种情况很少见,因为枢轴通常是随机选择的,因此每次选择最差枢轴的几率很小,平均而言,枢轴倾向于将列表大致分成两半。

如果非随机选择枢轴,例如取第一个元素,则某些输入(预先排序或反向排序的列表)可以强制执行n ^ 2。