algorithm – 中位数与TreeMap的中位数

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

Wont both work in linear time?

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

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

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

点赞