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

Data structures 用于分发的最有效的数据结构,data-structures,Data Structures,用例: 元素的值介于0和无穷大之间 用户可以进行如下查询--“为我提供位于前30%元素内的最低值” 我们可以存储1000个顶级元素,并且在任何时候都可以添加更多的元素 您可以使用什么样的数据结构来实现此功能 我的想法是,向量可以工作,但可能不是最有效的插入和检索 设想:保持数组排序。如果用户要求满足30%分布的最低元素,则执行array.length*0.7并返回该元素 我肯定会使用二叉树,它可以很好地对数据进行排序,并允许您相对快速地获得所需内容 数组对于插入或特定索引是很好的,但在搜索

用例:

  • 元素的值介于0和无穷大之间
  • 用户可以进行如下查询--“为我提供位于前30%元素内的最低值”

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

您可以使用什么样的数据结构来实现此功能


我的想法是,向量可以工作,但可能不是最有效的插入和检索

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



我肯定会使用二叉树,它可以很好地对数据进行排序,并允许您相对快速地获得所需内容

数组对于插入或特定索引是很好的,但在搜索键时,最坏的情况是O(n),这并不好


二叉树的搜索算法是O(log(n)),这要快得多。

有一些折衷。例如,数组在读取性能方面很好,但在添加和删除方面却很糟糕。二叉树非常适合以检索为代价进行修改。这让我想起了我读过的一篇关于体素引擎数据存储的文章。显然,最好的方法是将数据存储为换行字符串,并且每个运行长度都是区间树的良好表示形式。“”我们需要更多可能的查询和大小限制的示例。在这个例子中,每个元素的排序数组,并选择长度*0.7的元素,似乎是最好的。