从存储在数据库中的整数列表中查找最近的集合

时间:2012-02-21 11:06:20

标签: algorithm sqlite

我想找到存储在数据库表中的最接近或相同的整数集。 存储列表长度在0..10之间变化,元素的顺序很重要。

例如:

1:[1234, 2345, 5463, 1235]
2:[2355, 5463, 1235]
3:[123, 1234, 1235, 5463, 3443]

如果我有一个新的集合:[1235, 5463],我想找到最近的或匹配的集合。在这种情况下3:[123, 1234, 1235, 5463, 3443]

因为这些集存储在数据库中,所以我考虑将列表转换为散列值,然后根据给定集合中的计算散列对其进行排序。

它不一定是必须的,如果我能在第一个记录中找到最合适的结果,我很好。

实现这一目标的最佳散列方法是什么?

还是有其他合适的解决方案。

1 个答案:

答案 0 :(得分:0)

假设在最近的你真正意味着“最长公共子串”(LCS),那么哈希将无法帮助你 - 你真的需要用数据库的每个元素(或至少顶部)来计算查询的LCS很少,正如你所提到的那样。)

最好的方法是动态编程。有关详细信息,请参阅wikipedia