主函数:
调用不同的函数,更改这句就OK
max=MaxSubseqSum4(A,N);
int main()
{
int N,A[100000],max;
// printf("enter the number of the list N:\n");
scanf("%d",&N);
// printf("enter the content of the list :\n");
for(int i=0;i<N;i++)
scanf("%d",&A[i]);
max=MaxSubseqSum4(A,N);
printf("%d",max);
return 0;
}
- 方法一:直接算法
复杂度O(N^3)

int MaxSubseqSum1(int A[], int N)
{
int i,j,k;
int ThisSum,MaxSum=0;
for(i=0;i<N;i++){
for(j=i;j<N;j++){
ThisSum=0;
for(k=i;k<j;k++)
ThisSum +=A[k];
if(ThisSum>MaxSum)
MaxSum=ThisSum;
}
}
return MaxSum;
}
- 方法二:
复杂度O(N^2)

本文介绍了如何使用C语言求解最大子列和问题,详细讲解了四种不同方法,包括直接算法(复杂度O(N^3))、方法二(复杂度O(N^2))、分治策略(复杂度O(NlogN))和在线处理算法(复杂度O(N))。作者计划未来尝试用Python实现这些算法。
最低0.47元/天 解锁文章
560

被折叠的 条评论
为什么被折叠?



