用例:
用户可以进行类似的查询 - "为我提供最高30%元素内的最低值"
我们可以存储1000个顶级元素,并且可以在任何时候添加更多元素。
您可以使用哪种数据结构来实现这项工作?
我的想法是,矢量可以起作用,但可能不是最有效的插入和检索。
暂定的想法:保持数组排序。如果用户要求满足30%分布的最低元素,请执行array.length * 0.7并返回该元素。
答案 0 :(得分:0)
我肯定会选择二叉树,这样可以很好地对数据进行排序,让您可以相对快速地获得所需内容。
数组适用于插入或特定索引,但无论何时搜索密钥,都会遇到O(n)的最坏情况,这是不好的。
二叉树的搜索算法为O(log(n)),速度要快得多。