c求解最大字段和的几种方法

c求解最大字段和的几种方法

ID:8807681

大小:38.00 KB

页数:3页

时间:2018-04-08

c求解最大字段和的几种方法_第1页
c求解最大字段和的几种方法_第2页
c求解最大字段和的几种方法_第3页
资源描述:

《c求解最大字段和的几种方法》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、C++求解最大字段和的几种方法问题定义:给定n个整数(可能为负数)组成的序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的子段和的最大值(0

2、j,k,maxn=0;  for(i=0;imaxn)      {        maxn=temp_max;      }    }  }  returnmaxn;}时间复杂度O(n^3)。这显然是不能接受滴。其实这其中进行了大量的重复计算。方法二:可以把字段和结果线

3、计算出来啊,存储到s[]数组中,即预处理intsum=0.s[n];for(i=0;i

4、种情行:1)和a[1..n/2]的最大字段和相同。2)和a[n/2+1:n]的最大字段和相同。cucci女包、香奈儿包包、爱马仕包包:www.naitiao.com

5、冬装外套、冬装女装、时尚冬装:www.haomeifa.comgucci包、酷奇包包、金利来女包:www.naitiao.com

6、皮草外套、水貂皮草、皮草大衣:www.qqxk.org3)最大字段和包含两部分,一部分在中,另一部分在a[n/2+1..n]中。前两种情形我们可以用递归方法求出,第三种情形可以分别求出两部分的最大字段和值再相加(注:a[1..n/2]这部分求

7、最大字段和要以a[n/2]结束,a[n/2+1..n]这部分求最大字段和要以a[n/2+1]开始)。序列的最大字段和即为这三种情形的最大值。intmaxSubItem(int*a,intlow,inthigh){  ints1,s2,s31,s32,i,j;  intsum;  intmid=(low+high)/2;  if(low==high)    returna[low];  else  {    s1=maxSubItem(a,low,mid);    s2=maxSubItem(a,mid+1,high);    i=m

8、id;    s31=a[mid];    while((s31+a[i-1]>s31)&&(i>low))    {      s31+=a[i-1];      i--;    }    j=mid+1;    s32=a[mid+1];    while((s32+a[j+1]>s32)&&(j

9、杂度为O(n*logn)。要是有O(n)的算法该多好呢?事实上还真有。这自然就是要想到动态规划了吧!!!方法四:intmaxsub(inta,intn){  inttemp=0,maxn=-INF,k=1  intstart,end;  for(i=1;i<=n;i++)  {    temp+=a[i];cucci女包、香奈儿包包、爱马仕包包:www.naitiao.com

10、冬装外套、冬装女装、时尚冬装:www.haomeifa.comgucci包、酷奇包包、金利来女包:www.naitiao.com

11、皮草外套、水貂皮草、皮草大衣

12、:www.qqxk.org    if(temp>maxn)    {      maxn=temp;start=k;end=i;    }    if(temp<0)    {      temp=0;k=i+1;    }  } 

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

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

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