常用算法与程序设计第六章动态规划教学幻灯片讲义.pptVIP

  • 4
  • 0
  • 约5.61千字
  • 约 49页
  • 2018-02-27 发布于天津
  • 举报

常用算法与程序设计第六章动态规划教学幻灯片讲义.ppt

演示文稿演讲PPT学习教学课件医学文件教学培训课件

常用算法与程序设计 * 【例6.6】 给定一个由n个正整数组成的序列,从该序列中删除若干个整数,使剩下的整数组成非降子序列,求最长的非降子序列。 (1) 建立递推关系   设置b数组,b(i)表示序列的第i个数(保留第i个数)到第n个数中的最长非降子序列的长度,i=1,2,…,n。对所有的ji,比较当 a(j)≥a(i)时的b(j)的最大值,显然b(i)为这一最大值加1,表示加上a(i)本身这一项。   因而有递推关系: b(i)=max(b(j))+1 (a(j)≥a(i),1≤ij≤n)   边界条件: b(n)=1 6.5 最长子序列探索 6.5.1 最长非降子序列 常用算法与程序设计 * (2) 逆推计算最优值 b[n]=1; for(i=n-1;i=1;i--) {max=0;for(j=i+1;j=n;j++) if(a[i]=a[j] b[j]max) max=b[j]; b[i]=max+1;     /* 逆推得b[i] */ }   逆推依次求得b(n-1),…,b(1),比较这n-1个值得其中的最大值lmax,即为所求的最长非降子序列的长度即最优值。 常用算法与程序设计 * (3) 构造最优解   从序列的第1项开始,依次输出b(i)分别等于lmax,lmax-1,…,1的项a

文档评论(0)

1亿VIP精品文档

相关文档