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

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

ID:8849776

大小:15.52 KB

页数:6页

时间:2018-04-09

经典算法——求最大子序列和_第1页
经典算法——求最大子序列和_第2页
经典算法——求最大子序列和_第3页
经典算法——求最大子序列和_第4页
经典算法——求最大子序列和_第5页
资源描述:

《经典算法——求最大子序列和》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、经典算法——求最大子序列和比较经典的算法问题,能够很好的体现动态规划的实现,以一点“画龙点睛”大大精简了算法复杂度,且实现简单。本文中实现了4种:一般maxSubSequenceSum0O(n^3)简单优化过的算法maxSubSequenceSum1O(n^2)分治法优化的算法maxSubSequenceSum2O(n*log(n))动态规划的算法maxSubSequenceSum3O(n)#include#include"mymath.h"/**计算序列的某段子序列的和,maxSubSequenceSum0

2、使用*/staticintsubSequenceSum(inta[],intleft,intright){   inti,sum=0;   for(i=left;i<=right;i++)   {       sum=sum+a[i];   }   returnsum;}/**三层遍历求子序列和的最大值,算法复杂度O(n^3)*/intmaxSubSequenceSum0(inta[],intlen){   inti,j;   intcurSum;/*当前序列和*/   intmaxSum;/*最大序列和*/   /*初始化

3、最大子序列和为序列第一个元素*/   maxSum=a[0];   /*第一层循环定义子序列起始位置*/   for(i=0;i

4、       /*与最大子序列和比较,更新最大子序列和*/           if(curSum>maxSum)           {               maxSum=curSum;           }       }   }   returnmaxSum;}/**双层遍历求子序列和的最大值,算法复杂度O(n^2)*/intmaxSubSequenceSum1(inta[],intlen){   inti,j;   intcurSum;/*当前序列和*/   intmaxSum;/*最大序列和*/   /*

5、初始化最大子序列和为序列第一个元素*/   maxSum=a[0];   /*外层循环定义子序列起始位置*/   for(i=0;i

6、子序列和比较,更新最大子序列和*/           if(curSum>maxSum)           {               maxSum=curSum;           }       }   }   returnmaxSum;}/**某段字序列中,含左边界元素的字序列和中的最大值,_maxSubSequenceSum2中使用*/staticint_maxLeftBoderSubSequenceSum(inta[],intleft,intright){   inti;   intsum=0;   in

7、tmaxSum=a[left];   for(i=left;i<=right;i++)   {       sum+=a[i];       if(sum>maxSum)       {           maxSum=sum;       }   }   returnmaxSum;}/**某段字序列中,含右边界元素的字序列和中的最大值,_maxSubSequenceSum2中使用*/staticint_maxRightBoderSubSequenceSum(inta[],intleft,intright){   inti

8、;   intsum=0;   intmaxSum=a[right];   for(i=right;i>=left;i--)   {       sum+=a[i];       if(sum>maxSum)       {           maxSum=sum;       }   

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。