当前位置: 首页 > news >正文

专业建设网站哪家好百度快照是什么

专业建设网站哪家好,百度快照是什么,建设网站和别人公司重名,网站建设g最大子序列和问题:给定整数A1, A2, ..., An(可能有负数),ΣAk的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0)。例:输入-2,11,-4,13,-5,-2时&a…

      最大子序列和问题:给定整数A1, A2, ..., An(可能有负数),ΣAk的最大值(为方便起见,如果所有整数均为负数,则最大子序列和为0)。

      例:输入-2,11,-4,13,-5,-2时,答案为20(从A2到A4)。

 

算法1:穷举所有可能,立方运行时间。

 1 int MaxSubsequenceSum( const int A[ ], int N )
 2 {
 3     int ThisSum, MaxSum, i, j, k;
 4 
 5     MaxSum = 0;
 6     for( i = 0; i < N; i++ )
 7         for( j = i; j < N; j++ )
 8         {
 9             ThisSum = 0;
10             for( k = i; k <= j; k++ )
11                 ThisSum += A[ k ];
12 
13             if( ThisSum > MaxSum )
14                 MaxSum = ThisSum;
15         }
16         return MaxSum;
17 }


算法2: 平方运行时间。

 1 int MaxSubsequenceSum( const int A[ ], int N )
 2 {
 3     int ThisSum, MaxSum, i, j;
 4 
 5     MaxSum = 0;
 6     for( i = 0; i < N; i++ )
 7     {
 8         ThisSum = 0;
 9         for( j = i; j < N; j++ )
10         {
11             ThisSum += A[ j ];
12 
13             if( ThisSum > MaxSum )
14                 MaxSum = ThisSum;
15         }
16     }
17     return MaxSum;
18 }


算法3:分治策略,NlogN运行时间。

 1 static int Max3( int A, int B, int C )
 2 {
 3     return A > B ? A > C ? A : C : B > C ? B : C;
 4 }
 5 
 6 static int MaxSubSum( const int A[ ], int Left, int Right )
 7 {
 8     int MaxLeftSum, MaxRightSum;
 9     int MaxLeftBorderSum, MaxRightBorderSum;
10     int LeftBorderSum, RightBorderSum;
11     int Center, i;
12 
13     if( Left == Right ) /* Base case */
14         if( A[ Left ] > 0 )
15             return A[ Left ];
16         else
17             return 0;
18 
19     Center = ( Left + Right ) / 2;
20     MaxLeftSum = MaxSubSum( A, Left, Center );
21     MaxRightSum = MaxSubSum( A, Center + 1, Right );
22 
23     MaxLeftBorderSum = 0; LeftBorderSum = 0;
24     for( i = Center; i >= Left; i-- )
25     {
26         LeftBorderSum += A[ i ];
27         if( LeftBorderSum > MaxLeftBorderSum )
28             MaxLeftBorderSum = LeftBorderSum;
29     }
30 
31     MaxRightBorderSum = 0; RightBorderSum = 0;
32     for( i = Center + 1; i <= Right; i++ )
33     {
34         RightBorderSum += A[ i ];
35         if( RightBorderSum > MaxRightBorderSum )
36             MaxRightBorderSum = RightBorderSum;
37     }
38 
39     return Max3( MaxLeftSum, MaxRightSum,
40         MaxLeftBorderSum + MaxRightBorderSum );
41 }
42 
43 int MaxSubsequenceSum( const int A[ ], int N )
44 {
45     return MaxSubSum( A, 0, N - 1 );
46 }


算法4:线性运行时间。

 1 int MaxSubsequenceSum( const int A[ ], int N )
 2 {
 3     int ThisSum, MaxSum, j;
 4 
 5     ThisSum = MaxSum = 0;
 6     for( j = 0; j < N; j++ )
 7     {
 8         ThisSum += A[ j ];
 9 
10         if( ThisSum > MaxSum )
11             MaxSum = ThisSum;
12         else if( ThisSum < 0 )
13             ThisSum = 0;
14     }
15     return MaxSum;
16 }


算法5:修改算法4增加最大子序列和的子序列起始位置和终止位置。

 1 int MaxSubsequenceSum( const int A[], int N, int& x, int& y )
 2 {
 3     int ThisSum, MaxSum, t, j;
 4 
 5     t = 0;
 6     ThisSum = MaxSum = 0;
 7     for( j = 0; j < N; j++ )
 8     {
 9         ThisSum += A[j];
10         if( ThisSum > MaxSum )
11         {
12             MaxSum = ThisSum;
13             y = j;
14         }else if( ThisSum < 0 )
15         {
16             ThisSum = 0;
17             t = j + 1;
18         }
19         if ( t <= y )
20             x = t;
21     }
22     return MaxSum;
23 }
24 
25 int main()
26 {
27     int x = 0, y = 0;
28     int A[] = {4-35-2-126-12};
29 
30     int r = MaxSubsequenceSum(A, sizeof(A)/sizeof(A[0]), x, y);
31     printf("%d, %d, %d\n", r, x+1, y+1);
32 
33     return 0;
34 }


转载于:https://www.cnblogs.com/shengjin/archive/2010/01/08/1641975.html

http://www.lbrq.cn/news/2778895.html

相关文章:

  • 网站方案案例怎么做seo综合查询平台官网
  • 招工网站58同城朔州seo
  • 做网站什么科目宁波最好的seo外包
  • 好的网站建设天津seo管理平台
  • 手机app网站模板下载windows优化大师和鲁大师
  • 怎样能注册自己的网站网页制作工具有哪些
  • 北京网站建设怎么样天怎样创建一个网站
  • 二级域名指向 独立网站做网站推广一般多少钱
  • 如何建做校园购物网站肇庆网站建设制作
  • 做网站需要阿里云吗太原百度seo排名软件
  • 结合七牛云做视频网站福州关键词排名优化
  • 哪个网站专做民宿软件开发
  • 做网站的一些话术chatgpt 链接
  • 建设部电教中心网站seo自学网免费
  • wordpress内置播放器百度搜索seo
  • 中国进出口贸易官网网站建设优化哪家公司好
  • 营销网站建站公司转让如何进行app推广
  • 做教案找资料有哪些网站站长之家关键词查询
  • wordpress会员制网站自己开一个培训机构流程
  • 网站开发主管岗位职责说明书福州网站优化公司
  • 国家查企业信息查询平台移动网站优化排名
  • 做毕设的网站如何在外贸平台推广
  • 做网站的厉害还是黑网站的厉害拼多多代运营一般多少钱
  • 莞城网站推广自助建站系统代理
  • 河北建设集团有限公司 信息化网站网络营销软文范文
  • 蓝鸟E4A做网站程序网页制作官方网站
  • 佛山java web网站开发营销型网站建设专家
  • 百浪科技做网站怎么样html网页制作软件有哪些
  • 企业网站的建立联系方式东莞有哪些做推广的网站
  • 成品网站价格表b2b平台有哪些平台
  • 视觉语言导航(2)——VLN RNN TRANSFORMER 与ATTENTION 2.2+LSTM(单独一节)
  • 用户认证技术
  • 理解AQS的原理并学习源码
  • leetcode面试笔试-双指针题型总结
  • 【算法】模拟专题
  • rt-thread audio框架移植stm32 adc+dac,对接cherryusb uac,进行录音和播放