【发布时间】:2011-09-13 10:33:35
【问题描述】:
我很想知道计算集合中元素百分位数的最快方法。该集合是动态的 - 可以添加和删除元素,并且元素的值可以随时间变化。一个真实的例子是 SO 用户的声誉。计算每个用户前 X% 中 X 的最快方法是什么?
【问题讨论】:
标签: algorithm
我很想知道计算集合中元素百分位数的最快方法。该集合是动态的 - 可以添加和删除元素,并且元素的值可以随时间变化。一个真实的例子是 SO 用户的声誉。计算每个用户前 X% 中 X 的最快方法是什么?
【问题讨论】:
标签: algorithm
如果你想要一个内存数据结构,你想要一个order statistics tree,它是二叉搜索树的增强版本。这支持在 O(log(n)) 时间内按排序顺序查找第 N 个值、插入和删除。
如果您使用的是 SQL 数据库,则在特定列上保留索引并使用 top percent 查询应该是有效的。
【讨论】: