この生成アルゴリズムの時間計算量はどれくらいですか?

HaseeB Me

数生成アルゴリズムがあり、その時間計算量を知りたいですか?

長さnまでのすべての組み合わせを生成します。

以下はコードスニペットです

void generate_N_Numbers(int n){
    int len = 0;
    int alphaLen = 2;
    int  *letters  = malloc(n * sizeof(int));

    uint64_t outerLoopCounter = 0,innerLoopCounter1 = 0,innerLoopCounter2 = 0,
    innerLoopCounter3 = 0,innerLoopCounter4 = 0,totalLoopCounter = 0;   


    for (len=1; len<=n; len++)
    {
        outerLoopCounter++;
        int i;
        int stride = len+1;
        int bufLen = stride * alphaLen * alphaLen;

            if (len == 1) 
            continue;

        for (i=len-2; i<bufLen; i+=stride)
            innerLoopCounter1++;


        if (len == 2)
            continue;

        for (i = 0; i < len;i++){
        letters[i] = 0; 
        innerLoopCounter2++;
        }

    i = len-3;
    do {
        int  j;
        innerLoopCounter3++;

        letters[i]++;


        if (letters[i] >= alphaLen)
        letters[i] = 0;

        for (j=i;j<bufLen;j+=stride){
        innerLoopCounter4++;
        }

        if (letters[i] != 0) {
        i = len - 3;
        continue;
        }

        i--;

        if (i < 0)
        break;

    } while(1);

    }

}

このコードへのリンクは次のとおりです。https://ideone.com/HxzDGv

入力1から30のアルゴリズムの結果へのリンクは次のとおりです。https://pastebin.com/LwavAff1

その複雑さはO(n2)だと思いますが、それでもこれについてはよくわかりません。そして、このループは、どういうわけかO(n)の時間計算量を持つループよりも速く数を生成します。

TimD1

はい、実行時間がO(n ^ 2)になると仮定するのは正しいです。考慮すべきコードの最もコストのかかる部分は、2つのループ内の部分です。他のすべてのセクションは重要ではなく、O(1)の時間がかかります。

外側のforループはn回実行され、内側のforループはそれぞれO(n)回実行されます。

あなたのdo-whileループは、以下をn回実行し、forそのループ内側には、ほとんどのn回で実行されます。

最も内側のforループ内のすべての操作はO(1)であることに注意してください

この情報を要約すると、n *(n * 1 + n * 1)+ n * n * 1の演算、つまりO(n ^ 2)が必要です。

注:あなたのコードは非常に混乱しているので、私はあなたがしていることの背後にある論理に従うことを試みませんでした。基本的な複雑さの分析を示したかっただけです。をご覧になることをお勧めしstd::next_permutationます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

このBFSアルゴリズムの時間計算量はどれくらいですか?

分類Dev

このコイン交換アルゴリズムの時間計算量はどれくらいですか?

分類Dev

このアルゴリズム(Big-O)の時間計算量はどれくらいですか?

分類Dev

このアルゴリズムの時間計算量はどれくらいですか?

分類Dev

このアルゴリズム(擬似コード)の時間計算量はどれくらいですか?

分類Dev

このJSアルゴリズムの時間計算量はどれくらいですか

分類Dev

このアルゴリズムの時間計算量はどのくらいですか?

分類Dev

与えられたアルゴリズムの時間計算量はどれくらいですか?

分類Dev

数独のアルゴリズムXの時間計算量はどれくらいですか?

分類Dev

以下のアルゴリズムの時間計算量はどれくらいですか?

分類Dev

すべてのことばの梯子を取得するためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

ワイルドカードマッチングのためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

AVLツリーとバイナリツリーを使用したこのアルゴリズムの時間計算量はどれくらいですか

分類Dev

すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

次の再帰的アルゴリズムの時間計算量はどのくらいですか?

分類Dev

最長の回文部分文字列を見つけるこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

時間計算量に基づくこれら3つのアルゴリズムの違いは何ですか?

分類Dev

最大二者間マッチングアルゴリズムの時間計算量はどれくらいですか?

分類Dev

Spark:GraphXで使用される連結成分アルゴリズムの時間計算量はどれくらいですか?

分類Dev

ニュートン法と二分法のアルゴリズムの時間計算量はどれくらいですか?

分類Dev

このアルゴリズムの時間計算量はΘ(n)ですか?

分類Dev

このアルゴリズムの時間計算量を計算するにはどうすればよいですか?

分類Dev

このforループの時間計算量はどれくらいですか?

分類Dev

このループの時間計算量はどれくらいですか?

分類Dev

この特定のアルゴリズムの実行時間はどれくらいですか?

分類Dev

これらの順列および組み合わせアルゴリズムの時間計算量を計算するにはどうすればよいですか?

分類Dev

この逆文字列アルゴリズムの実行時間はどれくらいですか?

分類Dev

二分木ジグザグレベルの順序トラバーサルに対するこのアルゴリズムの時間計算量はどのくらいですか?

Related 関連記事

  1. 1

    このBFSアルゴリズムの時間計算量はどれくらいですか?

  2. 2

    このコイン交換アルゴリズムの時間計算量はどれくらいですか?

  3. 3

    このアルゴリズム(Big-O)の時間計算量はどれくらいですか?

  4. 4

    このアルゴリズムの時間計算量はどれくらいですか?

  5. 5

    このアルゴリズム(擬似コード)の時間計算量はどれくらいですか?

  6. 6

    このJSアルゴリズムの時間計算量はどれくらいですか

  7. 7

    このアルゴリズムの時間計算量はどのくらいですか?

  8. 8

    与えられたアルゴリズムの時間計算量はどれくらいですか?

  9. 9

    数独のアルゴリズムXの時間計算量はどれくらいですか?

  10. 10

    以下のアルゴリズムの時間計算量はどれくらいですか?

  11. 11

    すべてのことばの梯子を取得するためのこのアルゴリズムの時間計算量はどれくらいですか?

  12. 12

    すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  13. 13

    ワイルドカードマッチングのためのこのアルゴリズムの時間計算量はどれくらいですか?

  14. 14

    AVLツリーとバイナリツリーを使用したこのアルゴリズムの時間計算量はどれくらいですか

  15. 15

    すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  16. 16

    次の再帰的アルゴリズムの時間計算量はどのくらいですか?

  17. 17

    最長の回文部分文字列を見つけるこのアルゴリズムの時間計算量はどれくらいですか?

  18. 18

    時間計算量に基づくこれら3つのアルゴリズムの違いは何ですか?

  19. 19

    最大二者間マッチングアルゴリズムの時間計算量はどれくらいですか?

  20. 20

    Spark:GraphXで使用される連結成分アルゴリズムの時間計算量はどれくらいですか?

  21. 21

    ニュートン法と二分法のアルゴリズムの時間計算量はどれくらいですか?

  22. 22

    このアルゴリズムの時間計算量はΘ(n)ですか?

  23. 23

    このアルゴリズムの時間計算量を計算するにはどうすればよいですか?

  24. 24

    このforループの時間計算量はどれくらいですか?

  25. 25

    このループの時間計算量はどれくらいですか?

  26. 26

    この特定のアルゴリズムの実行時間はどれくらいですか?

  27. 27

    これらの順列および組み合わせアルゴリズムの時間計算量を計算するにはどうすればよいですか?

  28. 28

    この逆文字列アルゴリズムの実行時間はどれくらいですか?

  29. 29

    二分木ジグザグレベルの順序トラバーサルに対するこのアルゴリズムの時間計算量はどのくらいですか?

ホットタグ

アーカイブ