算法第五章节作业.docxVIP

  • 30
  • 0
  • 约3.12千字
  • 约 7页
  • 2017-03-15 发布于四川
  • 举报
算法第五章作业张杰 2013E8018661133 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;}试分析该算法的时间复杂性。试用分治算法解最大子段和问题,并分析算法的时间复杂性。试说明最大子段和问题具有最优子结构性质,并设计一个动态规划算法解最大子段和问题。分析算法的时间复杂度。(提示:令)解该算法的时间复杂性为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]的最大子段和为两部分的字段和组成,即;int MaxSubSum ( int *a, int left , int righ

文档评论(0)

1亿VIP精品文档

相关文档