【问题标题】:Fastest way to compute percentile of elements in a collection计算集合中元素百分位数的最快方法
【发布时间】:2011-09-13 10:33:35
【问题描述】:

我很想知道计算集合中元素百分位数的最快方法。该集合是动态的 - 可以添加和删除元素,并且元素的值可以随时间变化。一个真实的例子是 SO 用户的声誉。计算每个用户前 X% 中 X 的最快方法是什么?

【问题讨论】:

标签: algorithm


【解决方案1】:

如果你想要一个内存数据结构,你想要一个order statistics tree,它是二叉搜索树的增强版本。这支持在 O(log(n)) 时间内按排序顺序查找第 N 个值、插入和删除。

如果您使用的是 SQL 数据库,则在特定列上保留索引并使用 top percent 查询应该是有效的。

【讨论】:

    猜你喜欢
    • 2019-09-21
    • 2013-08-15
    • 2011-04-13
    • 2013-07-02
    • 2016-01-26
    • 2016-12-20
    • 2020-01-17
    • 2017-09-28
    • 2010-09-07
    相关资源
    最近更新 更多