文件比较算法(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
 

相关文章推荐

dsp 算法文件1

  • 2013年12月30日 19:43
  • 532KB
  • 下载

【数据结构】常见的7种比较排序算法1

● 直接插入排序(Insert Sort)1、算法描述:    该算法是一种简单直观的是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上只需用到O(1...
  • Scenlyf
  • Scenlyf
  • 2016年06月11日 18:53
  • 187

排序1+5:各种排序算法的总结和比较

1 快速排序(QuickSort) 快速排序是一个就地排序,分而治之,大规模递归的算法。从本质上来说,它是归并排序的就地版本。快速排序可以由下面四步组成。 (1) 如果不多于1个数据,直接...

算法运行时间1、logN、N、NlogN 、N^2、N^3、2^n之间的比较

排序算法中,常常要求我们估算出最坏情况运行时间和平均情况/期望运行时间。在估算运行时间时,我们常用到下面一些时间量:  1  大部分程序的大部分指令之执行一次,或者最多几次。如果一个程序的所有指...
  • x_panda
  • x_panda
  • 2013年11月26日 23:33
  • 5067

文本比较算法1

转载至点击打开链接 最近看到有人在找关于文本比较的算法,刚好最近休假,研究了一下,终于找到一个简单有效的算法,和大家分享一下。 算法本身很简单,但是要说清楚思路和原理就比较复杂了,打算分两...

算法导论学习心得1-----插入排序及两种不同插入方法的效率比较

插入排序的思想不多说了,就和打扑克牌时一样,拿到一张牌时从左到右比较后插入,不同的地方在于我们插入扑克牌是不用考虑移动顺序的。 按照书上第一个算法的代码,插入排序的算法如下: 插入排序1: int...
  • yu3wu4
  • yu3wu4
  • 2016年11月10日 15:23
  • 147

『算法学习笔记』10th day. 文件操作<1>

例题2-4 数据统计 输入一些整数,求出它们的最小值,最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000整数。 自己增加一个输出和的功能 这样平时可以用来记分。 1 #incl...

Git Day 1:比较修改文件的前后状态和内容

继最初我们提交了一个readme.txt文档后,我们开始修改readme.txtvi readme.txt //打开readme.txt输入一下内容:Git is a distributed ve...

典型的Top K算法_找出一个数组里面前K个最大数...或找出1亿个浮点数中最大的10000个...一个文本文件,找出前10个经常出现的词,但这次文件比较长,说是上亿行或十亿行,总之无法一次读入内存,

Top K 算法详解 应用场景:         搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。         假设目前有一千万个记录(...

算法1.常见查找算法以及数据结构比较

最近一直在复习,查找算法作为最常用的算法,作为算法系列第一部分总结一下,一来作为笔记,二来可以与大家一起分享,共同学习,共同进步,转载请注明出处,谢谢。 1. 顺序查找 原理 顺序查找,按照字面意...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:文件比较算法(1)
举报原因:
原因补充:

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