Cプログラミング
 Computer >> コンピューター >  >> プログラミング >> Cプログラミング

ネストされたループパズル?


このセクションでは、1つの興味深い問題があります。 2つのコードセグメントが表示されます。どちらも2つのネストされたループがあります。どちらがより速く実行されるかを特定する必要があります。 (コンパイラーがコードを最適化していないと想定します。)

セグメント1

for(int i = 0; i < 10; i++){
   for(int j = 0; j<100; j++){
      //code
   }
}

セグメント2

for(int i = 0; i < 100; i++){
   for(int j = 0; j<10; j++){
      //code
   }
}

両方のコードは同じ回数実行されます。 2つのループ内のコードは、どちらの場合も10000回実行されます。しかし、注意深く見ると、2番目のコードが最初のコードよりも多くのタスクを実行していることがわかります。最初のコードでは、内部ループが10回実行されます。そのため、初期化、条件チェック、インクリメント操作は10回実行されます。ただし、2番目のコードでは、内部ループが100回実行されます。したがって、初期化、条件チェック、およびインクリメント操作は100回実行されます。そのため、最初のものよりも時間がかかります。


  1. HTML<code>タグ

    タグは、HTMLドキュメントのコードをフォーマットするために使用されます。たとえば、Javaコードを記述して適切にフォーマットする場合は、HTMLの要素を使用します。 ここで、HTMLで要素を実装する例を見てみましょう- 例 <!DOCTYPE html> <html> <body> <h1>Header Files</h1> <h2>C++</h2> <code>    #include <iostream> </code> <h2>C&

  2. C言語でネストされたforループおよびその他の関連ステートメント

    ネストされたforループでは、複数のforステートメントがループの本体に含まれています。 反復回数は、外側のループの反復回数に内側のループの反復回数を掛けたものに等しくなります。 例 以下は、ネストされたforループのCプログラムです- #include<stdio.h> main( ){    int i,j;    for (i=1; i<=2; i++){       for (j=1;j<=2; j++){          printf