标签: quicksort
任何人都可以解释为什么quicksort的最坏情况运行时是O(n ^ 2)以及为什么这很罕见?
答案 0 :(得分:6)
如果每次都以最糟糕的方式选择枢轴,而不是分成两个大小为n / 2的列表,它将分为1和1中的一个,大小为n-1。这导致n的递归深度和总时间n ^ 2。
这种情况很少见,因为枢轴通常是随机选择的,因此每次选择最差枢轴的几率很小,平均而言,枢轴倾向于将列表大致分成两半。
如果非随机选择枢轴,例如取第一个元素,则某些输入(预先排序或反向排序的列表)可以强制执行n ^ 2。