首页 > 其他 > 详细

求数组子数组和的最大值 (线性算法)

时间:2014-03-11 00:16:46      阅读:450      评论:0      收藏:0      [点我收藏+]

以下是我写的关于一个数组求子数组和的最大值的C语言程序的代码,个人认为是线性的,但并不是很确定,求指导....

bubuko.com,布布扣
#include<iostream>
#define maxnum 1000
using namespace std;
int max(int list[],int length)
{
    int sum = 0;
    int i=1,j=0,l=length*(length+1)/2;
    int max = list[0];
    while(l>0)
    {
         sum=sum+list[j];
         if(sum>max)
        {
            max = sum;
        }
        j++;
        l--;
        if(j>=length)
            
        {   sum=0;
            j=i;
            
            i++;
        }
    }
    return max;
}
int main()
{
    int array[maxnum];
    int n;
    cout<<"请输入数组的长度:"<<endl;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>array[i];
    }
    cout<<"数组中最大的子数组的和为:"<<max(array,n)<<endl;
    return 0;
}
bubuko.com,布布扣

求数组子数组和的最大值 (线性算法),布布扣,bubuko.com

求数组子数组和的最大值 (线性算法)

原文:http://www.cnblogs.com/ls110220/p/3592439.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!