如果输入数组是随机均匀分布的(如您所指出的),则始终选择固定位置的元素(例如,您建议的中间位置)与随机选择的元素之间没有区别。
但是,如果您的输入数组不是真正按随机顺序排列(几乎在所有实际情况下都是这种情况),则需要“预偏移”数组以便将其中的元素按随机顺序放置,或(等价地)始终以随机元素为支点。这样可以确保快速排序的分区阶段将数组划分为大小几乎相等的子数组,从而确保预期的运行时间保持为Ø (ñ 日志n )
因此,您的困惑似乎来自以下事实:您以某种方式假设排序算法可以(实际上)期望输入数组始终是随机分布的。