【问题标题】:Effective way to find similar data pattern from a large data set从大型数据集中找到相似数据模式的有效方法
【发布时间】:2014-08-04 01:28:01
【问题描述】:

我在数据库中有一个大型数据集(数百万条记录),一个简化的示例如下: 6,1,3,5,2,3,4,5,6,7,9,3,1,3,5,4,6,3,4,6,4,5,7,4,5,0,8,... (millions records) 这里每个数字代表一行的一个键值。

我需要找到所有出现的1,3,5。直接的方法是迭代整个数据集并在每次迭代中检查三个连续的行。

有没有更有效的算法来做到这一点?

【问题讨论】:

  • 对于较大的搜索字符串,KMP 可能会提高搜索性能。我不确定这是否适用于三个要素。如果您多次搜索相同(或相似)的数据库,您可以保存以前的搜索结果。
  • 当要在未排序的集合中查找所有出现的事物时,O(N) 是最好的。
  • in each iteration 是什么意思?数据库应该只有一次迭代。

标签: algorithm large-data


【解决方案1】:

如果您只需要找到 3 个元素的子序列,最有效的方法是迭代整个数据。

很容易证明:您必须所有搜索算法检查整个数组。

在此算法中,您最多可以执行 3 次。这是您可以获得的最佳复杂性。

【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 2019-05-03
    • 2010-11-09
    • 2011-02-11
    • 1970-01-01
    相关资源
    最近更新 更多