なぜループではないO(N * 2 ^ n)のための2の時間複雑さはありますか?

ピーター:

この方法のための時間の複雑さがあるO(2^n)私の教授によります。

私はこの方法のための時間の複雑さがあるべきと感じてO(n * 2^n)いるので

ループ費用のためのアウター O(n)

ループ費用のためのインナー O(2^n)

public static int loop(int n) {
    int j = 1;
    for (int i = 0; i < n; i++) {
        for (int k = j; k > 0; k--) {
            System.out.println("Hello world");
        }
        j *= 2;
    }
    return j;
}
SomeDude:

このことを考慮:

以下の場合i = 0j = 1 -> 2^0

以下の場合i = 1j = 2 -> 2^1

以下の場合i = 2j = 4 -> 2^2

以下の場合i = 3j = 8 -> 2^3 ....

以下の場合i = n-1j = 2^n-1

あなたはそれらのすべてを追加する場合:

2^0 + 2^1 + 2^2 +.....+2^(n-1) => order of 2^(n) -> 2^(n) - 1 to be precise

時間の複雑さがあるので、 O(2^n)

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=28544&siteId=1