第3章 动态规划(part1).ppt

  1. 1、本文档共73页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第3章动态规划(part1)第3章动态规划(part1)

第三种情况的处理:S= 返回 S’1=max{1 ? i ? n/2}{ } S’2 =max{n/2+1 ?j ? n}{ } ? ak k=i n/2 ? ak k=n/2+1 j 确定i需O(n),确定j需O(n) S=S’1+S’2 ?ak k=i j 时间复杂度递推式 2 T(n/2) + O(n) ( n C ) O(1) ( n ? C) T(n) = 解上述递推式,得:T( n ) = O(n log n) 动态规划方法 思想:对a[1:j],记b[j],1 ?j ?n ?ak k=i j b[j]=max {1 ?i ?j} { } a[1:n]的最大子段和S= max {1 ?j ?n} max {1 ?i ?j} ?ak k=i j =max {1 ?j ?n} {b[j]} 而b[j]=max{b[j-1]+a[j],a[j]} b[j-1]0时 动态规划-程序 int MaxSum(int n, int *a) { int s = 0, b = 0; for (int i = 1;i = n;i ++ ) { if (b 0) b += a[i]; else b = a[i]; if (b sum) sum = b; } return sum; } 返回 复杂性O(n) 最大子段和的推广 2维--最大子矩阵和问题的求解算法 1维--最大m子段和问题的求解算法 最大子矩阵和问题 给定一个m行n列的整数矩阵A,试求矩阵A的一个子矩阵,使其各元素之和为最大。 0 -2 -7 0 2 -6 2 -4 1 -4 1 -1 8 0 -2 A= 算法 直接枚举:需4重循环,复杂性O(m2n2) 改进:记S(i1,i2,j1,j2)= ? aij i=i1,j=j1 i2,j2 要求 S= max{1 ?i1 ?i2 ? m} max{1 ?j1 ?j2 ? n} S(i1,i2,j1,j2) = max{1 ?i1 ?i2 ? m} t(i1,i2) 其中 t(i1,i2)= max{1 ?j1 ?j2 ? n} S(i1,i2,j1,j2) = max{1 ?j1 ?j2 ? n} ? bj j=j1 j2 bj是j列上从i1行到i2行的元素之和,显然t(i1,i2)是求b[1..n]的最大子段和 a11 a12 a13 … a1k … a1n a21 a22 a23 … a2k … a2n ………………. ai1 ai2 ai3 … aik … ain ai+1 ai+12 ai+13 … ai+1k … ai+1n ai+21 ai+22 ai+23 … ai+2k … ai+2n ……………………… am1 am2 am3 … amk … amn 算法图示 A= 复杂性O(m2n) int MaxSum(int m, int n, int **a){ int sum = 0, *b = new int [n + 1]; for (int i = 1;i = m;i ++) { for (int k = 1;k = n;k ++) b[k] = a[i][k]; for (int j = i+ l;j = m;j ++){ for (int k = l;k = n;k ++) b[k] + = a[i1[k]; int max = MaxSum(n,b); if (max sum) sum = max; } } return sum; } 复杂性O(n) 总复杂性O(m2n) 最大m子段和问题-自学 给定由n个整数(可能为负整数)组成的序列a1,a2,…,an,以及一个正整数m,要求确定序列a1,a2,…,an的m个不相交子段,使这m个子段的总和达到最大。 设b(i,j)表示数组a的前j项中i个子段和的最大值,且第i个子段含a[j](

文档评论(0)

cxiongxchunj + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档