作业帮 > 综合 > 作业

最长公共子序列算法最近想做文件比较(比较两个二进制文件之间的差异,如0 1 2 4 3 5 6和0 1 2 3 4 5比

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/29 02:25:27
最长公共子序列算法
最近想做文件比较(比较两个二进制文件之间的差异,如0 1 2 4 3 5 6和0 1 2 3 4 5比较,结果是0 1 2 +3 4 -3 5 -6),就要取最长公共子序列(没有+也没有-的部分0 1 2 4 5).
动态规划O(n²)的方法我会,但是我要处理的是上几MB的文件,用O(n²)的算法显然不行.我需要一个O(nlgn)的算法.
可以用后缀数组搞.
可以看下这个
http://www.cnblogs.com/looker_acm/archive/2010/07/18/1780176.html
再问: 你好象搞错了一点,这个算法1234567和1234576算出最长公共子序列是12345,但是我要求的最长公共子序列不一定连续,123456更长
再答: 哦,抱歉,我弄错了。 公共子序列的话,我不知道有nlgn的算法。 我只直到 http://hi.baidu.com/fandywang_jlu/item/b9a9580bbadbbc1aebfe38fd 这个,在一些条件限制下可以达到nlgn的算法,但是最坏情况会更糟。 如果你能找到最坏情况还能nlgn的算法,希望可以告诉我。