中位数与TreeMap的中位数

时间:2015-12-14 14:53:14

标签: algorithm

我想知道使用TreeMap来查看数字数组并获得排序结果比使用Median of Medians算法找到未排序数组中的第K个最大元素更好吗?它们都不会在线性时间内工作吗?

1 个答案:

答案 0 :(得分:1)

  

两者都不能在线性时间内工作吗?

当然他们会:一旦数据在树形图中,找到K顺序统计数据就是O(N)操作 * 。此外,除非您选择将已排序的容器写入数组,否则运行在TreeMap上的常量因子将会更小。

问题是构建TreeMap是O(N * log 2 N),而Median of Medians算法适用于未分类数据,因此不需要预备步骤。因此,在先前无序的集合上使用TreeMap将渐渐变得更加昂贵。

* 您可以通过使用每个子树中的项目数增加树节点来使其成为O(log 2 N)。