data-structures - 对于这些情况,最合适的数据结构是什么?
问题描述
我正在开发一个程序,我正在考虑哪种数据结构最合适。
我有以下课程-
public class item{
String name;
int value;
public item(String name, int value){
this.value = value;
this.name = name;
}
}
我有两种情况-
在添加新项目和更新旧项目的值时存储大量项目并检索前 n 个项目。
存储所有项目并检索前 n 个项目,而不添加任何新项目或更新旧项目。
我正在尝试为这两种情况实现最佳情况时间复杂度。
我曾考虑将所有项目存储在地图中以按名称查找,然后存储在 maxheap 中,然后从顶部删除 n 个项目,存储它们,然后将它们添加回堆栈。
我已经将优先级队列和二叉搜索树视为选项,它们中的任何一个更合适吗?或者它们是适合这些情况的任何其他结构吗?
解决方案
如果名称是唯一的,您可以使用 IDictionary。这种用途非常快
推荐阅读
- wpf - RadGridView GridViewSelectColumn 即使在禁用时仍然可选择
- html - 如何使用 Bootstrap4 和/或 flex 将内容居中并设置页脚?
- mysql - 在 Windows 服务器和 Ubuntu 上运行 Mysql 8.0 - 比较
- ios - Swift - 在数组中添加粒度(2 x 2、5 x 5 等)
- python - 在 Raspberry Pi Zero 上安装 chromium 或 Firefox webdriver 的可靠方法
- pyspark - pyspark/dataframe - 创建嵌套结构
- jaxb - XPath 评估总是导致空的目标节点
- shell - sed:关于 sed 脚本拆分文件的问题
- r - 如何在数据集中创建布尔变量?
- python - 梯度错误地返回无