我正在寻找内容寻址数据结构

时间:2009-03-18 08:50:37

标签: c algorithm data-structures

我正在尝试设计一种数据结构,允许从其内容的一部分中有效地提取条目。

假设我正在寻找符合此条目的条目:[ x 2 3 x x ]

如果[ 0 2 3 4 5 ][ 3 2 3 7 8 ]在我的数据结构中,它们应该由我的find函数返回。

我编写了这样一个数据结构,我将“模式”与数据结构的所有条目进行比较,但当然需要花费太多时间。关于如何以更快的方式做到这一点,我几乎没有什么想法,但实施起来相当繁重。这样的事情已经存在吗?如果没有,你会怎么做?

4 个答案:

答案 0 :(得分:5)

首先想到的是为元组中的每个位置设置一个哈希表。对于搜索,您将使用指定值与所有位置的结果相交。

答案 1 :(得分:4)

嗯,Suffix tree可以在O(1)中完成,但这需要很多记忆。

答案 2 :(得分:2)

您尝试实施的内容与tuple space非常相似。

答案 3 :(得分:0)

您可以查看RETE算法。这个一般性问题出现在70年代的AI系统中; Paradigms of AI Programming中的第14章介绍了它。 (IIRC主要阐述了蓝星的答案和决策树。)