求子数组的最大值

题目:给定一个数组,求出子数组的最大值。

分析:对数组的各子数组进行划分,对所有的情况进行比较,具体代码如下:

#include<stdio.h>
#define N 4

int main()
{
 int a[N];
 int i,j;
    int max=a[0];
printf("请输入%d个整数:",N);
for(i=0;i<N;i++)
 scanf("%d",&a[i]);
for(i=0;i<N;i++){
 int sum=0;
 for(j=i;j<N;j++)
 {
 sum=sum+a[j];
 if(sum>max)
  max=sum;
 }
}
printf("最大的子数组是:%d\n",max);
return 0;
}

此代码可基本完成题目的要求,而且代码的数目也比较少,比较清晰,各种情况均有测试。代码的复杂度为n^2,老师要求为线性的,所以代码还有待于完善。

posted @ 2014-03-10 15:01  逍遥丶小哥  阅读(98)  评论(0)    收藏  举报