什么数据结构符合此描述?

时间:2012-06-17 19:08:38

标签: data-structures

我需要一个包含唯一值(如集合)的数据结构,但也需要对它们进行排序(如优先级队列),并允许随机访问二进制搜索(如数组)。哪种类型的数据结构适合这些需求?我可以在没有排序的情况下生活(我总是可以在最后对其进行排序)

2 个答案:

答案 0 :(得分:4)

这听起来像一个平衡的二叉树,其插入操作具有唯一性限制,并且实现OS-SELECT操作(参见:Introduction to Algorithms,第3版第14章)以检索元素给出其在O(lg n)中的等级(“指数”)。

建议的数据结构和增强操作将允许您:

  • 保持唯一值,在O(lg n)
  • 中执行插入操作
  • 使用O(lg n)搜索操作
  • 保持元素排序
  • 访问元素,其等级为O(lg n)

答案 1 :(得分:0)

TreeSetTreeMap怎么样?

  • 唯一值 - 仅存储唯一值
  • 排序 - 使用元素的自然顺序或提供给它们的自定义Comparator对条目进行排序
  • 随机访问 - 都提供随机(O(1))访问。