Algorithm 多算法程序的时间复杂度

Algorithm 多算法程序的时间复杂度,algorithm,big-o,Algorithm,Big O,所以我知道如果我的程序有这样的东西- method 1: for (int i = 0; i < N; i++) statement; 它将在^2上 如果我的程序是这样几个循环的组合呢?像- method1: statement; method2: statement; 或 这会增加系统的总时间复杂度吗?或者只取它们中最高的一个,然后继续?当循环嵌套时,时间复杂度会成倍增加。例如- loop(1 to n1): loop(1 to n2):

所以我知道如果我的程序有这样的东西-

     method 1:
     for (int i = 0; i < N; i++) 
       statement;
它将在^2上

如果我的程序是这样几个循环的组合呢?像-

method1: statement;
method2: statement;


这会增加系统的总时间复杂度吗?或者只取它们中最高的一个,然后继续?

当循环嵌套时,时间复杂度会成倍增加。例如-

loop(1 to n1):
    loop(1 to n2):
        loop(1 to n3):
            # Some code here
在上述情况下,时间复杂度为O n1*n2*n3。当循环并行运行时,时间复杂度会增加。例如-

loop(1 to n1):
    # Some code here
loop(1 to n2):
    # Some code here
loop(1 to n3):
    # Some code here
在上述情况下,时间复杂度为O n1+n2+n3

如果我的程序是这样几个循环的组合呢

1.第一个例子- 在上面的代码中,method1的时间复杂度为ON,method2的时间复杂度为ON^2。因此,我们的总体时间复杂度为-

O( N ) + O( N^2 ) = O( N + N^2 ) = O( N^2 )
O( N ) + O( N ) + O( N ) = O ( 3*N ) = O ( N ) 
在上界时间复杂度中,我们通常忽略低阶项,简化得到的最终时间复杂度。在上面的例子中,答案是^2

2.第二个例子- 我们可以用类似的方式计算时间复杂度。我们将有一个复杂的时间-

O( N ) + O( N^2 ) = O( N + N^2 ) = O( N^2 )
O( N ) + O( N ) + O( N ) = O ( 3*N ) = O ( N ) 
计算上界时间复杂度时的另一个规则是,我们忽略在时间复杂度中得到的常数项

这些规则可以很容易地扩展到类似的例子中。无论有多少个循环是并行的,我们都将对每个循环求和,并应用上述两个规则,这将是我们最终的时间复杂性。类似地,对于嵌套循环,我们将乘以每个循环的时间复杂度,这将是我们的最终结果


希望这有帮助

嵌套循环时,时间复杂度会成倍增加。例如-

loop(1 to n1):
    loop(1 to n2):
        loop(1 to n3):
            # Some code here
在上述情况下,时间复杂度为O n1*n2*n3。当循环并行运行时,时间复杂度会增加。例如-

loop(1 to n1):
    # Some code here
loop(1 to n2):
    # Some code here
loop(1 to n3):
    # Some code here
在上述情况下,时间复杂度为O n1+n2+n3

如果我的程序是这样几个循环的组合呢

1.第一个例子- 在上面的代码中,method1的时间复杂度为ON,method2的时间复杂度为ON^2。因此,我们的总体时间复杂度为-

O( N ) + O( N^2 ) = O( N + N^2 ) = O( N^2 )
O( N ) + O( N ) + O( N ) = O ( 3*N ) = O ( N ) 
在上界时间复杂度中,我们通常忽略低阶项,简化得到的最终时间复杂度。在上面的例子中,答案是^2

2.第二个例子- 我们可以用类似的方式计算时间复杂度。我们将有一个复杂的时间-

O( N ) + O( N^2 ) = O( N + N^2 ) = O( N^2 )
O( N ) + O( N ) + O( N ) = O ( 3*N ) = O ( N ) 
计算上界时间复杂度时的另一个规则是,我们忽略在时间复杂度中得到的常数项

这些规则可以很容易地扩展到类似的例子中。无论有多少个循环是并行的,我们都将对每个循环求和,并应用上述两个规则,这将是我们最终的时间复杂性。类似地,对于嵌套循环,我们将乘以每个循环的时间复杂度,这将是我们的最终结果


希望这有帮助

一般来说,取它们中的最高值,分别为+N^2和O3*N。主要部分是N^2和N,通常取其中的最高部分。这将分别在+N^2和O3*N上。主要部分将是N^2和N