9 如果您有快速排序算法,并且始终选择最小(或最大)元素作为枢轴;我是否假设如果您提供一个已经排序的数据集,无论您的“已排序”列表是按升序还是降序,都将始终获得最差的性能? 我的想法是,如果您始终为枢轴选择最小的元素,那么“已排序”输入是按升序还是降序排序并不重要,因为选择相对于枢轴进行排序的子集始终是一样大小? algorithms time-complexity algorithm-analysis runtime-analysis sorting — si source 2 您的想法是正确的,但在这种情况下,您也可以直接争论并计算快速排序的运行时间-您将获得。Ø (ñ2)O(n2) — Yuval Filmus 2012年
15 快速排序的最坏情况复杂度是。这是通过选择枢轴来实现的,该枢轴将集合划分为一个组只有一个成员。对于错误的数据透视选择算法,可以通过选择已排序集合的一端来轻松实现。您的假设是正确的。Θ (n2)Θ(n2) — 沃尔里 source 2 最好将其编写为:“ ...这是通过选择将集合进行划分的枢轴来实现的,以便一个组仅具有O(1)成员” @Saeed Amiri:是的,但最好是精确的。 — MMS 1 @SaeedAmiri:O(1)表示它与1成正比,这意味着它可以是k * 1。实际的最坏情况是恰好在1时达到的。我将向您保证O(1)仍可能导致O(n ^ 2)。 — walrii 2012年 @MMS,我确切地写了,walrii您写道:“快速排序的最坏情况是 ..”,但实际上,这是实现的唯一方法不是您所说的方式,是的您描述的方式在所有情况下都是最坏的情况,但不是唯一的。Θ (n 2)Θ (n 2)Θ (n 2)O (1 )O(1)Θ (n2)Θ(n2)Θ (n2)Θ(n2)Θ (n2)Θ(n2)