当前位置:   article > 正文

求解最大子段和问题----分治 蛮力 dp_c语言求解最大连续子序列和问题(蛮力+分治)

c语言求解最大连续子序列和问题(蛮力+分治)

【问题描述】给定一个有n(n≥1)个整数的序列,要求求出其中最大连续子序列的和。
例如:
序列(-2,11,-4,13,-5,-2)的最大子序列和为20
序列(-6,2,4,-7,5,3,2,-1,6,-9,10,-2)
的最大子序列和为16。
规定一个序列最大子段和至少是0,如果小于0,其结果为0。
蛮力法
穷举所有连续子序列来得到。
设含有n个整数的序列a[0…n-1],穷举所有的连续子序列a[i…j],求出它的所有元素之和thisSum,并通过比较将最大值存放在maxSum中,最后返回maxSum。
在这里插入图片描述

long maxSubSum1(int a[],int n)
{
          int i,j,k;
  long maxSum=a[0],thisSum; 
  for (i=0;i<n;i++)     //两重循环穷举所有的连续子序列
  {
     for (j=i;j<n;j++)
    {
      thisSum=0;
      for (k=i;k<=j;k++)
        thisSum+=a[k];
      
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/951876
推荐阅读
相关标签
  

闽ICP备14008679号