该Median of medians
方法在类型划分算法中非常流行,quicksort
可以产生相当好的枢轴,从而均匀地划分数组。其逻辑在 Wikipedia 中给出为:
选择的枢轴小于和大于中位数列表中元素的一半,每半数约为 n/10 个元素 (1/2 * (n/5))。这些元素中的每一个都是 5 的中位数,使其小于块外的 2 个其他元素和大于 2 个其他元素。因此,主元小于块外的 3(n/10) 个元素,大于块外的另外 3(n/10) 个元素。因此,所选中值将元素拆分为 30%/70% 和 70%/30% 之间的某个位置,这确保了算法的最坏情况线性行为。
有人可以为我解释清楚一点。我发现很难理解其中的逻辑。