算法分析习题详细答案五.docxVIP

  • 6
  • 0
  • 约7.61千字
  • 约 8页
  • 2023-09-09 发布于上海
  • 举报
PAGE PAGE 101 / 8 最大子段和问题:给定整数序列 a , a 1 2 , , a ?n ? ,求该序列形如?j a k k ?i 的子段和 的最大值: ? max?0, max ? 1?i? j?n ?j a ? ??k ? ? k ?i 已知一个简单算法如下: 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; }试分析该算法的时间复杂性。 试用分治算法解最大子段和问题,并分析算法的时间复杂性。 试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。 (提示:令b( j) ? max 1?i? j?n ?j k ?i a , j ? 1,2, k , n ) 解:1)分析按照第一章,列出步数统计表,计算可得O(n2 ) 2)分治算法:将所给的序列a[1:n]分为两段a [1:n/2]、a[n/2+1:n],分别求出这两段的最大子段和,则 a[1:n]的最大

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档