2

「Big-O」を計算する必要がある次のコードがあります。

def f3(lst):
    i = len(lst)
    while i>0:
        for j in range(i):
            for k in range(j, 10**5):
                print(i)
        i -= 2

lstが長さ n のリストであり、操作が であると仮定するとO(1)、次forのようになりO(1)ます。

while は n 回実行され、最初の for ループは n/2 回実行されるため、一般的に複雑さはO(n^2).

あれは正しいですか?私の友人はそれだと思いますO(n^4)

ありがとう。

4

2 に答える 2

0

答えは O(n^3) ではありませんか? 内側のループは、特定の場所以降の j の線形関数の条件をチェックするためにまだランタイムを取っているため、j による i による n の合計は O(n^3) ですか?

于 2013-04-11T19:10:03.613 に答える