用于分发的最有效的数据结构

时间:2015-02-11 17:16:50

标签: data-structures

用例:

  • 元素的值介于0和Infinity之间
  • 用户可以进行类似的查询 - "为我提供最高30%元素内的最低值"

  • 我们可以存储1000个顶级元素,并且可以在任何时候添加更多元素。

您可以使用哪种数据结构来实现这项工作?


我的想法是,矢量可以起作用,但可能不是最有效的插入和检索。

暂定的想法:保持数组排序。如果用户要求满足30%分布的最低元素,请执行array.length * 0.7并返回该元素。


1 个答案:

答案 0 :(得分:0)

我肯定会选择二叉树,这样可以很好地对数据进行排序,让您可以相对快速地获得所需内容。

数组适用于插入或特定索引,但无论何时搜索密钥,都会遇到O(n)的最坏情况,这是不好的。

二叉树的搜索算法为O(log(n)),速度要快得多。