我知道有一个名为MultiMap的数据结构,它是一个具有O(n)线性搜索时间的表结构。我希望有更好的搜索时间。因此,想知道我是否可以使用树形结构或它的变体(请建议)。
编辑:
好的,MultiMap根据其实现中的答案/文档进行O(log n)搜索和遍历。
首先,我必须转到第n个元素(我正在寻找的那个)然后,我会输入它的值(列表),遍历列表并找到值,或者只是检索列表本身(值)?
123 3456 4567 5678 321
这样的结构(我有更多10,000行像那样)在给出123时搜索321,反之亦然。 我认为B-Tree将是一个不错的选择,但我不确定,另外一件事,搜索321,我想象的是如何将123存储为关键字并将321存储为其值?
**可能有多个123 3456 4567 5678 989
,123 3456 4567 5678 787
因此我假设具有多个值数据结构的键应该对此有所帮助。
答案 0 :(得分:1)
答案 1 :(得分:0)
作为集合哈希实现的MultiMap(即集合的哈希)具有恒定的平均搜索时间。
在C ++中,此实现以unordered_multimap
(以及所提及的complexity)的形式存在。