【发布时间】:2014-05-19 02:13:07
【问题描述】:
就个人而言,我认为中位数的中位数不是真正的中位数。对吗?
那么如果上面的说法是正确的,为什么要使用中位数的中位数作为支点来划分数组以找到第 Kth min elem 的时间复杂度最坏情况是 O(n)? “n”是元素的数量。
【问题讨论】:
标签: algorithm time-complexity partition median-of-medians
就个人而言,我认为中位数的中位数不是真正的中位数。对吗?
那么如果上面的说法是正确的,为什么要使用中位数的中位数作为支点来划分数组以找到第 Kth min elem 的时间复杂度最坏情况是 O(n)? “n”是元素的数量。
【问题讨论】:
标签: algorithm time-complexity partition median-of-medians
中位数的中位数确实只是一个近似值,不一定是实际中位数。
它被用作优化,在快速排序或快速选择等算法中计算数组分区的枢轴,从而避免O(n^2) 的最坏情况复杂度。
虽然这种方法优化得很好,但通常 通过选择随机枢轴,在实践中表现优于 选择的平均线性时间和平均线性时间 排序,并避免计算枢轴的开销。
【讨论】: