文件比较算法(1)

原创 2007年10月20日 23:52:00
# -*- coding: cp936 -*-
'''
文件比较算法:
算法模型参见:
# 参考文章:http://blog.csdn.net/clariones/archive/2006/11/19/1396880.aspx
#           http://blog.csdn.net/clariones/archive/2006/11/24/1412394.aspx
1.确定最大匹配率
2.确定最优匹配路径
'''
left 
= 'ABCACADF'
right 
= 'BCXCADFESBABCACA'
all 
= []
# 创建矩阵,行数与列数均为left,right的长度+1,并将所有元素置0
for i in range(len(left) + 1):
    all.append([])
    
for j in range(len(right) + 1):
        all[i].append(0)
##for i in all:
#
#    print i
#
 比较left与right的值,相同的将矩阵中对应元素置1    
for l in range(len(left)):
    
for r in range(len(right)):
        
if left[l] == right[r]:
            all[l][r] 
= 1
##print '*'* 10
#
#for i in all:
#
#    print i
#
 计算最大匹配数
for i in range(len(left) - 1,-1,-1):
    
for j in range(len(right) - 1,-1,-1):
        all[i][j] 
= max(all[i][j+1],all[i+1][j+1]+ all[i][j],all[i+1][j])
print '*' * 20
for i in all:
    
print i
# 计算最短路径        
for j in range(len(right) - 1,-1,-1):
    
for i in range(len(left) - 1,-1,-1):
        
if left[i] == right[j]:
            all[i][j] 
= all[i + 1][j + 1+ 1
        
else:
            
if all[i + 1][j] >= all[i][j + 1]:
                all[i][j] 
= all[i + 1][j]
            
else:
                all[i][j] 
= all[i][j+1+ 1
print '*' * 20
for i in all:
    
print i
 

文档的相似性可以使用Shingling算法进行比较

1、文档的相似性,可以将文档转化为集合,然后计算二个集合的交集,如果交集越大,则二个文档越相似,否则不相似。 可以使用Jaccard=|S交T|/|S并T| 2、可以使用shingling...
  • u011955252
  • u011955252
  • 2016年01月11日 18:29
  • 1359

文本比较算法1

  document.body.oncopy = function() { if (window.clipboardData) { se...
  • sunskyor
  • sunskyor
  • 2009年08月27日 23:53
  • 5845

算法--算法运行时间比较

算法的运行时间通常与下列函数成比例:  1  大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指令都具有这样的性质,我们说这个程序的执行时间是常数。  ...
  • huangxiaominglipeng
  • huangxiaominglipeng
  • 2014年10月21日 17:32
  • 597

文件相似度比对工具的设计与实现

一、背景与目标 我们业务维护了两个代码仓库,两端的代码很多都是一个平台先开发好,几乎直接copy到另一个仓库。于是产生了一个技术需求,实现这两个仓库代码复用。在技术预研阶段,需要统计早先copy的...
  • lizitao
  • lizitao
  • 2017年01月17日 17:23
  • 2040

git如何知晓文件差异

求两版本之间的差异是一个动态规划问题   git 能发现任何的改动,但它是怎么发现的呢?难道它监控了我们对文件的读写操作? git 才没这么鸡冻……它是通过比较新旧版本,掐指一算算出来的O(∩_∩)...
  • liuqiaoyu080512
  • liuqiaoyu080512
  • 2013年02月12日 11:39
  • 4199

各种内部排序算法的比较和应用

一、内部排序算法的比较 1.内部排序主要有插入排序,交换排序,选择排序,归并排序和基数排序。 其中插入排序的基本思想在于每次将一个待排序的记录按其关键字的大小插入到前面已经排好的序列中。实现算法主要有...
  • aaronkwo
  • aaronkwo
  • 2017年05月06日 20:23
  • 882

手把手教你TestComplete_文件比对算法讨论

文件比对是一个非常古老的话题,但是真要做好并不容易。   来看看下面两个文件: FILE1: A B D E F FILE2:   B C D E G     首先...
  • Testingba
  • Testingba
  • 2011年08月22日 17:20
  • 1828

算法系列——字符串匹配朴素算法和KMP算法

字符串匹配算法主要是两类,最基本的暴力解法,也叫做朴素算法,另一种是KMP算法。本篇给出两种算法的最简单化的写法,便于面试时记忆和书写,当然重点还是理解其算法思想。朴素匹配算法被搜索的字符串称为主串,...
  • ylyg050518
  • ylyg050518
  • 2017年12月17日 15:24
  • 231

文件比较函数diff

作为一个程序员,调试
  • DaiHaoC83E15
  • DaiHaoC83E15
  • 2014年08月13日 17:11
  • 1119

惊叹于vimdiff: 关于文件比较工具

导读:   最近想在linux下面找一款文件比较的工具。在这里找到了下面几款免费的文件比较工具:   P4WinMerge - Perforce Visual Merge for Windows  ...
  • chief1985
  • chief1985
  • 2008年03月30日 20:28
  • 1683
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件比较算法(1)
举报原因:
原因补充:

(最多只允许输入30个字)