大(O)表示法:任何人都可以验证吗?

con*_*ode 4 algorithm complexity-theory pseudocode

所以我正在为我的一个计算类回答一个问题.我开发了一种算法,然后它问我算法的复杂性.我目前不太擅长确定复杂性,所以任何人都可以验证吗?

代码如下:

if( A.type is not Comparable ): return False                   // Max runs = 1
current ? A.head                                               // Max runs = 1
printedFirst ? False                                           // Max runs = 1
while( current.hasNext ):                                      // Max runs = s-1
    if ( current.value < current.next.value ):                 // Max runs = s-1 
        if ( printedFirst ): print “, “                        // Max runs = s-1
        print “(“ + current.value + “, “ + current.next.value + “)” //runs = s-1
        printedFirst ? True                                    // Max runs = s-1
    current = current.next                                     // Max runs = s-1
Run Code Online (Sandbox Code Playgroud)

所以我们有

3( 1 ) + 6(s - 1) = 3 + 6s - 6 = 6s - 3 = O( n )
Run Code Online (Sandbox Code Playgroud)

正确?

Fra*_*ank 5

单个while循环,只有一个if if inside ...去O(n).

祝你上课好运.