どちらのプログラムが重いですか?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
大学生

どちらのプログラムが重いですか?

#1

投稿記事 by 大学生 » 10年前

1と2のどちらのプログラムが重いか教えてください。また、その見分け方なども知りたいです。
ちなみに、このような内容の薄いプログラムは重いも軽いもあまりないですか??なければ、こっちで書けた方がいいなどというのもあれば教えてください。説明の仕方が下手ですみません(^^;)

コード:


//その1

#include <stdio.h>

int main()
{
    int count1;
    int count2;
    int ary[3][3] = {
        1 , 5 , 10 ,
        50 , 100 , 500 ,
        1000 , 5000 , 10000
    };
    
    for(count1=0; count1<3; count1++){
        for(count2=0; count2<3; count2++){
            printf("ary[%d][%d] = %d\n", count1, count2, ary[count1][count2]);
        }
    }
    
    return 0;
}



コード:


//その2

#include <stdio.h>

int main()
{
    int count1 = 0;
    int count2 = 0;
    int ary[3][3] = {
        1 , 5 , 10 ,
        50 , 100 , 500 ,
        1000 , 5000 , 10000
    };
    
    while(1) {
        printf("ary[%d][%d] = %d\n" , count1 , count2 , ary[count1][count2]);
        count2++;
        if (count2 == 3) {
            count1++;
            count2 = 0;
        }
        if (count1 == 3) break;
    }
    
    return 0;
}


アバター
みけCAT
記事: 6734
登録日時: 15年前
住所: 千葉県
連絡を取る:

Re: どちらのプログラムが重いですか?

#2

投稿記事 by みけCAT » 10年前

大学生 さんが書きました:1と2のどちらのプログラムが重いか教えてください。また、その見分け方なども知りたいです。
実験はしていませんが、計算量のオーダーは同じですし、重さはほとんど変わらないでしょう。
要素数を増やしても、出力の方がボトルネックになりそうです。
大学生 さんが書きました:ちなみに、このような内容の薄いプログラムは重いも軽いもあまりないですか??なければ、こっちで書けた方がいいなどというのもあれば教えてください。
単にC言語のプログラムを書くなら素直なその1の方がいいと思いますが、
アセンブリ言語への移植を考えるならその2の書き方もいいかもしれません。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

box
記事: 2002
登録日時: 15年前

Re: どちらのプログラムが重いですか?

#3

投稿記事 by box » 10年前

大学生 さんが書きました:1と2のどちらのプログラムが重いか教えてください。
「重い」の定義は何ですか?

# プログラムには重さはないので… なんて言ったら怒られるんだろうな、きっと。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。

大学生

Re: どちらのプログラムが重いですか?

#4

投稿記事 by 大学生 » 10年前

>みけCATさん
丁寧に答えてくださりありがとうございます。
やはり、この程度のプログラムではどちらで書いてもかわらないのですね(^^)
ただ単に書く分にはその1の方が自分もやりやすいと思ったので1の方で書くようにします。ありがとうございました!

>boxさん
あいまいな質問してすみません(^^;)
同じ実行結果が得られる2つのプログラムでも処理が軽く済むのと処理が重いのがあると聞いたので今回はこのような質問をさせていただきました。

閉鎖

“C言語何でも質問掲示板” へ戻る