算法分析习题参考答案第五章.docVIP

  • 0
  • 0
  • 约5.39万字
  • 约 10页
  • 2017-02-09 发布于河南
  • 举报
算法分析习题参考答案第五章

1.最大子段和问题:给定整数序列 ,求该序列形如的子段和的最大值: 已知一个简单算法如下: int Maxsum(int n,int a,int best i,int bestj){ int sum = 0; for(int i=1;i=n;i++){ int suma = 0; for(int j=i;j=n;j++){ suma + = a[j]; if(suma sum){ sum = suma; besti = i; bestj = j; } } } return sum; }试分析该算法的时间复杂性。 试用分治算法解最大子段和问题,并分析算法的时间复杂性。 试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。 (提示:令) 解:1)分析按照第一章,列出步数统计表,计算可得 2)分治算法:将所给的序列a[1:n]分为两段a [1:n/2]、a[n/2+1:n],分别求出这两段的最大子段和,则a[1:n]的最大子段和有三种可能: ①a[1:n]的最大子段和与a[1:n/2]的最大子段和相同; ②a[1:n]的最大子段和与a[n/2+1:n]的最大子段和相同; ③a[1:n]的最大子段和为两部分的字段和组成,即

文档评论(0)

1亿VIP精品文档

相关文档