经典算法——求最大子序列和.docxVIP

  • 5
  • 0
  • 约4.21千字
  • 约 6页
  • 2017-05-29 发布于北京
  • 举报
经典算法——求最大子序列和比较经典的算法问题,能够很好的体现动态规划的实现,以一点“画龙点睛” 大大精简了算法复杂度,且实现简单。本文中实现了4种:一般 maxSubSequenceSum0 O(n^3)简单优化过的算法 maxSubSequenceSum1 O(n^2)分治法优化的算法 maxSubSequenceSum2 O(n*log(n))动态规划的算法 maxSubSequenceSum3 O(n)#include math.h#include mymath.h/** 计算序列的某段子序列的和,maxSubSequenceSum0使用*/static intsubSequenceSum(int a[], int left, int right){??? inti, sum = 0;??? for (i = left; i = right; i++)??? {??????? sum = sum + a[i];??? }??? return sum;}/** 三层遍历求子序列和的最大值,算法复杂度O(n^3)*/int maxSubSequenceSum0(int a[], intlen){??? inti, j;??? intcurSum; /* 当前序列和 */??? intmaxSum; /* 最大序列和 */??? /* 初始化最大子序列和为序列第一个元素 */???

文档评论(0)

1亿VIP精品文档

相关文档