首页 > 解决方案 > 对于这些情况,最合适的数据结构是什么?

问题描述

我正在开发一个程序,我正在考虑哪种数据结构最合适。

我有以下课程-

public class item{ 
    String name;
    int value;

    public item(String name, int value){
        this.value = value;
        this.name = name;
    }
}

我有两种情况-

在添加新项目和更新旧项目的值时存储大量项目并检索前 n 个项目。

存储所有项目并检索前 n 个项目,而不添加任何新项目或更新旧项目。

我正在尝试为这两种情况实现最佳情况时间复杂度。

我曾考虑将所有项目存储在地图中以按名称查找,然后存储在 maxheap 中,然后从顶部删除 n 个项目,存储它们,然后将它们添加回堆栈。

我已经将优先级队列和二叉搜索树视为选项,它们中的任何一个更合适吗?或者它们是适合这些情况的任何其他结构吗?

标签: data-structuresbinary-search-treepriority-queueheapsort

解决方案


如果名称是唯一的,您可以使用 IDictionary。这种用途非常快


推荐阅读