大佬教程收集整理的这篇文章主要介绍了是否有类似diff的算法来处理移动的线段?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
由于您要求的是算法而不是应用程序,因此请阅读WalterTichy的“带有块移动的字符串到字符串校正问题”。还有其他内容,但这是原始内容,因此您可以查找引用它的论文以找到更多信息。
该论文引用了保罗·海克尔(PaulHeckel)的论文“隔离文件之间差异的一种技术”,并提及了其算法:
该diff
程序具有各种形式,相当擅长计算两个文本文件之间的差异,并且比完整显示两个文件更紧凑地表达它。它以一系列插入和删除的行(或在某些情况下为更改的行,但等同于删除后插入)的顺序显示差异。patch
源控制系统使用相同或非常相似的程序或算法,以最小化表示同一文件的两个版本之间的差异所需的存储。在这里和这里讨论该算法。
但是当文本块在文件中 移动 时,它会下降。
假设您具有以下两个文件,a.txt
并且b.txt
(假设它们都是几百行而不是只有六行):
a.txt b.txt
----- -----
1 4
2 5
3 6
4 1
5 2
6 3
diff a.txt b.txt
显示如下:
$ diff a.txt b.txt
1,3d0
< 1
< 2
< 3
6a4,6
> 1
> 2
> 3
从a.txt
到的更改b.txt
可以表示为“采用前三行并将其移至末尾”,但是diff
两次显示已移动的行的完整内容,却没有机会@R_282_10584@地描述这一大更改。
请注意,diff -e
该文本块仅显示一次,但这是因为它不显示已删除行的内容。
该diff
算法是否有一个变体,(a)保留diff
了表示插入和删除的能力,(b)有效地表示了移动的文本块而不必显示其全部内容?
以上是大佬教程为你收集整理的是否有类似diff的算法来处理移动的线段?全部内容,希望文章能够帮你解决是否有类似diff的算法来处理移动的线段?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。