以下案例的有用数据结构

时间:2011-05-16 19:42:49

标签: algorithm data-structures

以下情况可以是最佳数据结构。

1.应该有搜索,插入和删除等操作。大多数搜索活动都在那里。大约90%的操作将是搜索,其余的是删除和插入。

2插入,删除和搜索将基于对象的键。每个键都指向一个对象。键将被排序。

对于优化数据结构的任何建议都将受到高度赞赏。

5 个答案:

答案 0 :(得分:1)

AVL树,或至少是BST。

如果您想要经常访问相同的元素,您可能也需要考虑展开树。

(我应该解释原因吗?)

答案 1 :(得分:1)

不确定您对“数据结构”的意思

我建议MySQL。 在此处阅读更多内容:WikiPedia

答案 2 :(得分:1)

自我平衡树(AVL,RB)或哈希表。

答案 3 :(得分:1)

我猜你想要优化时间。总的来说,red-black tree在所有三个操作中都具有对数时间性能。这可能是你在执行时间上最好的整体赌注;但是,红黑树的实现很复杂,需要一个节点结构,这意味着它们将使用比所包含的数据本身所需更多的内存来存储。

答案 4 :(得分:1)

你想要一张树支持的地图;基本上你只需要一个树,其中节点按键动态排序(“自我平衡”),你的对象挂在每个节点上并带有相应的键。

如果您想要一个“最佳”数据结构,那完全取决于您期望的输入模式的分布。关于自平衡树的好处是你不需要过多关注输入模式。如果您真的希望尽可能接近最佳猜测,并且您对查询的具体顺序知之甚少,则可以使用O(log(log(N)) TreeMap }-竞争的。这种增长速度如此之慢,以至于从实际目的来看,你所拥有的东西并不比你可以选择的最佳数据结构中的有效恒定因子更糟糕。

然而,实现起来有些蹩脚,你可能会更好地使用库来实现自平衡树。

的Python: http://en.wikipedia.org/wiki/Tango_tree

爪哇: 如果您只是Java,只需使用{{1}}(基于红黑树)并忽略实现细节。大多数语言的标准库都有类似的数据结构。