以下是我写的关于一个数组求子数组和的最大值的C语言程序的代码,个人认为是线性的,但并不是很确定,求指导....
#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; }