文本比较算法,给点建议解决思路

文本比较算法,给点建议
将两个文件按Bit位进行比较,得出两个文件的差异!!!
给点建议,谢谢!!!
------解决方案--------------------
引用:
Quote: 引用:

文件不大的话,全部读入。
文件较大,则分段读入。
对两块内存做XOR,0的部分就说明相等,1的部分说明有差异。

这个不是那么简单
比如,原始文件为:10011010
      最新文件为:010011010
因为原始文件多了一个Bit,导致后面很多不一样,但是,实际上呢 ,唯一不一样的地方只是新文件多了最前面的一个Bit而已

还是要谢谢你的回答

找到xor差值最小的那个情况?
------解决方案--------------------
首先你要定义差异 你不能说多了一个字符“我认为”差异就很小。
------解决方案--------------------
引用:
首先你要定义差异 你不能说多了一个字符“我认为”差异就很小。

有的时候多一个字符,一样完全变了。
对于计算机也一样,我觉的楼主这个应该先定义patten再进行比较。
------解决方案--------------------
这个叫“最短编辑距离”,但实际应用里面,会使用分行的方式和局部贪心的做法降低时空复杂度
------解决方案--------------------
你可以看看HexWorkshop的“文件重新同步比较”功能,有时候很准,有时候就很不准。
估计是没有一个好的算法能实现这个功能。
------解决方案--------------------
可以先分8次匹配,每次用字节模式匹配处理需要时,额外检测下,两头两个字节,就可以了
------解决方案--------------------
引用:
Quote: 引用:

可以先分8次匹配,每次用字节模式匹配处理需要时,额外检测下,两头两个字节,就可以了

没太明白,其实我的数据是位流,
不是字节流,
所以单纯的比较字节的话是不行的

把短的位流移位7次,不就得到8个字节流的字符串了么
然后8个字符串分别用KMP去匹配就好了
------解决方案--------------------
文本比较算法,给点建议解决思路
看LZ的需求,基本上是要在B中查找与A的最大匹配位置吧