//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和

时间:2023-03-09 05:47:14
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
# include<stdio.h>
void main()
{
int i,j,sum=,sum1;
int a[]={,-,,,,,-,,,-};//数组要定义的时候直接全部赋值
//int a[10];!!!!!
// a[10]={1,-2,3,4,5,6,
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
# include<stdio.h>
void main()
{
int i,sum=,sum1=;
int a[]={,-,,,,,-,,,-};
for(i=;i<;i++)
{
sum1=sum1+a[i];
if(sum<sum1)
sum=sum1;
else if(sum1<)//若当前求和为负数时,直接抛弃,置0.从0开始
sum1=;
}
printf("sum=%d",sum);
}

算法1的时间复杂度为O(N*N)

算法2为O(N)

一般时间复杂度看for循环,for循环嵌套时,时间复杂度乘法递增。