对滚动数组算法的时间空间分析.docVIP

  • 3
  • 0
  • 约3.61千字
  • 约 4页
  • 2016-11-22 发布于重庆
  • 举报
对滚动数组算法的时间空间分析

对滚动数组求解转换方案进行的分析 经过观察发现,该动态规划方程只需要保存数组的三行即可求出最小费用的答案,但是构造一个转化方案却很费时间。应用滚动数组可极大地节省空间(O(m),m为源串的长度),但如果需要构造一个转换方案则因缺少必要的信息而进行了重复计算损失了时间。分析附带的滚动数组算法没有做一些常数上的优化(比如对滚动数组操作时进行mod3加法以取代复制,保存多行构造所需的数组信息等),但能说明问题的复杂度。 由于数学基础不足,首先做了以下的假设: 由于输入的各种处理条件的代价是随机的,并且两个串出现twiddle的情况概率基本可以忽略,可粗略认为每个(n,m)长度的匹配来自↑、←、↖的概率相同,均为1/3。所以可应用如下方程式求出所需代价,前两种情况为在第一行或第一列时,只有一种方法可以走。 n+f(n-1,m) ,m=1; f(n,m)= m+f(n,m-1) ,n=1; nm+(f(n,m-1)+f(n-1,m-1)+f(n-1,m))/3 ,m1ANDn1; 1.对f(n,m)f(n,m-1),f(n,m)f(n-1,m)的证明: f(n,m)= nm+(f(n,m-1)+f(n-1,m-1)+f(n-1,m))/3 ,n1ANDm1 (1) f(n,m+1)= n(m+1)+(f(n,m)+f(n-1,m)+f(n-1,m+1

文档评论(0)

1亿VIP精品文档

相关文档