所以我正在为我的一个计算类回答一个问题。我开发了一种算法,然后它问我算法的复杂性。我现在不太擅长确定复杂性,所以任何人都可以验证吗?
代码如下:
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
所以我们有
3( 1 ) + 6(s - 1) = 3 + 6s - 6 = 6s - 3 = O( n )
正确?
答案 0 :(得分:5)
单个while循环,只有一个if if inside ...转到O(n)。
祝你上课好运。