用于分发的最有效数据结构
Most efficient data structure to use for distributions
用例:
- 元素的值介于 0 和 Infinity 之间
用户可以像这样查询 -- "Give me the lowest value that is inside the top 30% of the elements"
我们可以存储 1000 个顶部元素,并且可以随时添加更多元素。
你可以使用什么数据结构来完成这项工作?
我的想法是向量可以工作,但对于插入和检索可能不是最有效的。
设想:保持数组有序。如果用户要求满足分布的 30% 的最低元素,则执行 array.length * 0.7,并 return 该元素。
我肯定会选择二叉树,它可以很好地对数据进行排序,并且可以让你相对快速地找到你想要的东西。
数组适用于插入或特定索引,但任何时候搜索键时,最坏的情况都是 O(n),这并不好。
二叉树的搜索算法为 O(log(n)),速度明显更快。
用例:
- 元素的值介于 0 和 Infinity 之间
用户可以像这样查询 -- "Give me the lowest value that is inside the top 30% of the elements"
我们可以存储 1000 个顶部元素,并且可以随时添加更多元素。
你可以使用什么数据结构来完成这项工作?
我的想法是向量可以工作,但对于插入和检索可能不是最有效的。
设想:保持数组有序。如果用户要求满足分布的 30% 的最低元素,则执行 array.length * 0.7,并 return 该元素。
我肯定会选择二叉树,它可以很好地对数据进行排序,并且可以让你相对快速地找到你想要的东西。
数组适用于插入或特定索引,但任何时候搜索键时,最坏的情况都是 O(n),这并不好。
二叉树的搜索算法为 O(log(n)),速度明显更快。