`
hojor
  • 浏览: 109197 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

最大子序列和问题的联机算法

阅读更多
#include<stdio.h>
#include<stdlib.h>

/*!\func       int MaxSubsequenceSum(const int a[],int n)   
 *\bref        the problem about the max sum of subsequence 
 *\para[in]    a[] : the sequence
 *\para[in]    n   : the number of sequence
 *\author      zhangdy
 *\date        2010-06-01
 *\return      int : the max num of subsequence
*/
int MaxSubsequenceSum(const int a[],int n)
{
    int max = 0,sum = 0,i;
    for(i=0;i<n;i++)
    {
        sum += a[i];
        if(sum > max)
        {
            max = sum;
        }
        else if(sum < 0)
        {
            sum = 0;
        }
    }
    return max;
}

/*! main func */
int main()
{
    int a[] = {1,-2,3,8,-5,2,5,4,9,-11,22,31,23,-3,-31,-22,4};
    int i;
    int n = sizeof(a)/sizeof(int);
    
    printf("a[]=");
    for(i=0;i<n;i++)
    {
        static char separator = '{';
        printf("%c%d",separator,a[i]);
        separator = ',';
    }
    printf("}\n");
    
    printf("the max sum is : %d",MaxSubsequenceSum(a,n));
    system("pause");
    return 0;
}

 

分享到:
评论

相关推荐

    C 最大子序列算法

    C 最大子序列问题的几中算法-分治-联机算法

    最大子序列和问题求解源代码

    2010.09.07 用分治法求解最大子序列问题。...《数据结构与算法分析 C++描述》p42最大子序列问题的递归方法代码 2010.09.07 vector a的内容: 4 -3 5 -2 -1 2 6 -2 最大子序列和是:11 请按任意键继续. . .

    最大子序列之和C++实现常数时间

    通常,最大子序列和问题通过 Kadane's Algorithm(卡丹算法)可以在线性时间内O(n)解决,但实现常数时间的解决方案则需要特别的优化。然而,应该注意的是,对于大多数情况,常数时间复杂度是不现实的,因为至少需要...

    c/c++解决最大子序列和问题

    利用C/C++语言解决最大子列和问题,在线处理-超简单的算法

    C++算法-最大子序列和.zip

    总的来说,最大子序列和问题是一个基础但重要的算法问题,对于理解和掌握动态规划以及迭代方法有着积极作用。通过深入学习C++实现的这一算法,开发者不仅能提升编程技巧,还能锻炼问题解决能力,为解决更复杂的算法...

    最大子序列和

    求最大子序列和的四个算法,通过对比,可以了解算法时间计算

    最大子序列问题算法分析.doc

    最大子序列问题算法分析 最大子序列问题是计算机科学中的一种经典问题,旨在寻找给定整数序列中最大子序列的和。该问题可以使用多种算法来解决,包括穷举法、递归法等。在本文中,我们将对最大子序列问题的算法进行...

    最大子序列和问题的求解.md

    ### 最大子序列和问题详解 #### 一、引言 最大子序列和问题是一个经典的计算机科学问题,涉及在一串整数(其中可能包括负数)中找到具有最大和的连续子序列。此问题不仅在理论研究中有重要意义,在实际应用如生物...

    动态规划算法:最大子序列问题

    动态规划算法:最大子序列问题

    最大子序列和问题 C++ 代码实现

    最大子序列和问题(Maximum Subarray Sum Problem)是求解一个数组中连续子数组的和的最大值的问题。

    最大子序列和MAX-SUM

    最大子序列和问题,一个整形数组序列求一个不变顺序的相加最大和子序列。

    最大子序列求和最大子序列求和

    动态规划是解决最大子序列和问题的最优算法之一。其核心思想是利用已计算出的子问题结果,避免重复计算,从而达到优化算法的目的。在这个问题中,我们可以通过维护一个变量,用来存储当前子序列的最大和,每当遇到新...

    最大子序列算法[整理].pdf

    最大子序列问题是一种经典的算法问题,它涉及到对一维数组中的连续子序列进行求和,目标是找到和最大的那个子序列。在这个问题中,我们通常使用动态规划的思想来解决。以下是对最大子序列求和算法的详细解释: 1. *...

    最大子序列.pdf

    例如,注释提到的“最大子序列问题”,实际上在代码中似乎是在计算连续子序列的和,而不是找出最大子序列本身。此外,代码中有些地方语法不完整,可能是因为扫描错误,例如`intsum=0;for(i=0;i;i++){}mostEle(num);`...

    算法艺术之最大子图形问题详解

    在算法领域,最大子图形问题是一类典型的动态规划问题,主要涉及到二维数组或矩阵中的特定图形的求解。这类问题通常要求找到一个特定形状的最大连续子区域,如最大子正方形、最大子矩形、最大子三角形或最大子菱形。...

    最大子段和(分治法)源码

    8. 重要性:最大子段和问题是一个经典的问题,解决该问题需要使用递归算法和分治法,这些技术在数据结构和算法设计中非常重要。 9. 应用场景:最大子段和问题有很多实际应用场景,如计算机视觉、图像处理、数据挖掘...

    西南交通大学-算法分析与设计-实验5.4实验报告包含预习部分-求最大子序列-求最大子矩阵

    最大子序列和问题是一维数组中最长的连续子序列,使得子序列的和最大。最大子矩阵和问题是在二维矩阵中找到一个矩形区域,其内部元素之和最大。 1. **最大子序列和算法**: 在动态规划方法中,我们通常使用Kadane'...

    PHP求最大子序列和的算法实现

    2. 初始化两个下标变量`$start`和`$end`,用于记录最大子序列的起始和结束位置,初始值分别为0。 3. 遍历数组中的每个元素,将元素值累加到`$thissum`上。 4. 如果`$thissum`大于`$maxsum`,则更新`$maxsum`并记录...

    最大子序列求和动态规划

    cout整数序列最大子段和是:"; } void main(){ int n,a[100],m,maxsum; cout请输入整数序列的元素个数n"; cin&gt;&gt;n; cout请输入各元素的值:"; for(m=0;m;m++) cin&gt;&gt;a[m]; Maxsum(n,a); }

Global site tag (gtag.js) - Google Analytics