第四章5(贪心、动态)预案.ppt

  1. 1、本文档共74页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.5 动态规划 4.5.1 认识动态规划 4.5.2 算法框架 4.5.3 突出阶段性的动态规划应用 4.5.4 突出递推的动态规划应用 4.6 算法策略间的比较 4.6.1 不同算法策略特点小结 4.6.2 算法策略间的关联 算法1说明 以上的递归算法虽然解决了问题,但效率很低,有子问题重叠,n=4时的递归过程如下图: 上节 下节 算法2(改进后递归算法) int m[100][100],com[100][100],r[100]; matrix2( ) { int n,; print(“How mang matrixes?”); input (n); print(“How size every matrixe?”); for (i=1;i=n+1;i++) input (r[i]); for (i=1;i=n;i++) /初始化化数组com和m。/ for (j=1;j=n;j++) { com[i][j]=0; m[i][j]=0; } course (1,n); print (“The least calculate quantity:”m[1][n]); for (i=1;i=n;i++) { print(“换行符”); for (j=1;j=n;j++) print(com[i][j]); } } 上节 下节 course (int i,int j) { if (m[i][j]0) return m[i][j]; if(i=j) return 0; if(i=j-1) { com[i][i+1]=i; m[i][j]= r[i]*r[i+1]*r[i+2]; return m[i][j]; } int u= course (i,i)+ course (i+1,j)+r[i]*r[i+1]*r[j+1]; com[i][j]=i ; for (int k==i+1; kj;k++) { int t= course (i,k)+ course (k+1,j)+r[i]*r[k+1]*r[j+1]; if (tu) { u=t ; com[i][j]=k; } } m[i][j]=u; return u; } 上节 下节 算法3(非递归算法) main( ) { int n,r[100],m[100][100],com[100][100]; peint(“How mang matrixes?”); input (n); peint(“How size every matrixe?”); for (i=1;i=n+1;i++) input (r[i]); for (i=1;i=n;i++) /初始化化数组com和m。/ for (j=1;j=n;j++) com[i][j]=0; for (i=1;in;i++) { m[i][i]=0; \s=0\ m[i][i+1]= r[i]*r[i+1]*r[i+2]; \s=1\ com[i][i+1] = i+1; } 上节 下节 m[n][n]= 0; for ( s =2; s=n-1;

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

我是一名原创力文库的爱好者!从事自由职业!

1亿VIP精品文档

相关文档