最大子数组之暴力枚举法

来源:互联网 发布:推理悬疑高分电影知乎 编辑:程序博客网 时间:2024/04/29 16:13
/***************************************************************用暴力枚举法求解最大子数组问题,时间复杂度为O(n的平方)输入:第一行为数组元素个数,第二行为数组中的元素值,如下:1613 -3 -25 20 -3 -16 -23 18 20 -7 12 -5 -22 15 -4 7输出:4318 20 -7 12****************************************************************/#include <stdio.h>#include <stdlib.h>int main(){int length;int *A;int max,sum,maxi,maxj;while(scanf("%d",&length)==1){if(length!=0){//输入数组元素A=(int *)malloc(sizeof(int)*length);for(int i=0;i<length;i++){scanf("%d",&A[i]);}/**************************************************************///暴力枚举算法核心max=A[0];maxi=0;maxj=0;for(int i=0;i<length;i++){sum=A[i];for(int j=i+1;j<length;j++){sum=sum+A[j];if(max<sum){maxi=i;max=sum;maxj=j;}}}/*************************************************************/printf("max_sub_sum:%d\n",max);for(;maxi<=maxj;maxi++)printf("%d ",A[maxi]);}else break;}return 0;}

0 0