Java 确定最坏情况算法的时间复杂度

Java 确定最坏情况算法的时间复杂度,java,algorithm,time-complexity,Java,Algorithm,Time Complexity,这两种算法是否具有相同的θ(n^2)特征 int和=0; 对于(int i=0;i

这两种算法是否具有相同的θ(n^2)特征

int和=0;
对于(int i=0;i
如果不是,那么这是否意味着该特征不是Θ(n^3)

int和=0;
对于(int i=0;i
@Dan,对于第一个问题,你真的是指
j
而不是
j
?如果是这样,第一个的时间复杂度是Θ(n^3),不是吗

如果你的意思是
j
,那么我相信前两个都是Θ(n^2):第一个需要n^2步,第二个需要1+2+…+n=n(n+1)/2,即Θ(n^2)


我认为第三个是Θ(n^4),但更难证明。肯定是O(n^4)。

我不认为第一个是n^2,但对于J,您如何计算这两个步骤中的任何一个?对于第二个,总共有8个操作?sum=0,i=0等于2运算。在外循环中,iI不必担心计数
i=0
sum=0
等。这里最重要的是计算运行了多少次
sum++
。唯一需要计算的操作是
sum++
。在第一种情况下,如果n是10,那么总和是多少?仔细看这些环。在第二种情况下,如果N是4,“j”循环的行为是什么?是的,我的意思是j@Dan乘法将次数增加n,而不是1<代码>用于(int i=0;i@Tony当@Dan说degree时,我相信他说的是指数。是的@Dan,如果你乘以n^k*n,你会得到n^(k+1)。我不确定你是不是在问这个问题。
int sum = 0;
for (int i = 0; i < n; i++ )
    for (int j = 0; j < n * n; j++ )
        sum++;

int sum = 0;
for ( int i = 0; i < n; i++)
    for ( int j = 0; j < i; j++)
        sum++;
int sum = 0;
for ( int i = 0; i < n; i++)
    for ( int j = 0; j < i * i; j++ )
        for ( int k = 0; k < j; k++ )
            sum++;