就我个人而言,我认为中位数的中位数不是真正的中位数。正确吗?
因此,如果上述陈述为真,那么为什么使用中位数的中位数来划分数组以找到Kth min elem的时间复杂度,最坏的情况是O(n)? “n”是elems的数量。
答案 0 :(得分:2)
中位数的中位数确实只是近似值,不一定是实际中位数。
它用作优化,用于计算Quicksort或Quickselect等算法中数组分区的数据透视,以避免O(n^2)
的最坏情况复杂性。
Wikipedia article关于它,说:
虽然这种方法很好地优化,但通常情况下 在实践中表现优于通过选择随机枢轴而已 选择的平均线性时间和平均线性时间 排序,并避免计算枢轴的开销。