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

Cプログラムの再帰関数を持つ補助空間?


ここでは、再帰関数呼び出しに補助スペースがどのように必要かを確認します。そして、それは通常の関数呼び出しとどのように違うのですか?

以下のような関数があるとします-

long fact(int n){
   if(n == 0 || n == 1)
      return 1;
   return n * fact(n-1);
}
を返します

この関数は再帰関数です。これをfact(5)のように呼び出すと、以下のようにスタック内にアドレスが格納されます-

fact(5) --->
fact(4) --->
fact(3) --->
fact(2) --->
fact(1)

再帰関数が何度も自分自身を呼び出しているため、アドレスがスタックに追加されます。したがって、関数がn回再帰的に呼び出されると、O(n)個の補助スペースが必要になります。ただし、これは、1つの通常の関数がn回呼び出された場合、スペースの複雑さがO(n)になることを意味するものではありません。通常の機能では、呼び出されたときにアドレスがスタックにプッシュされます。その後、完了すると、スタックからアドレスをポップし、呼び出し元関数に入ります。その後、もう一度お電話ください。したがって、O(1)になります。


  1. 6 つの実用的な例を含む Bash シェル関数のチュートリアル

    Bash シェル関数は、グループに単一の名前を使用して、後で実行するために複数の UNIX / Linux コマンドをグループ化する方法です。 . Bash シェル関数は、通常の Unix コマンドと同じように実行できます。シェル関数は、それらを解釈するための新しいプロセスを作成することなく、現在のシェル コンテキストで実行されます。bash エイリアスと関数の両方を使用すると、より長い、またはより複雑なコマンドのショートカットを定義できます。ただし、エイリアスは、このチュートリアルで説明されているように、これらの関数が許可する制御フロー、引数、およびその他の巧妙なものを許可しません。 この

  2. Excel でデータベース関数を使用する方法 (例あり)

    この記事では、Excel でデータベース関数を使用する方法について説明します。 Excel には 12 のデータベース関数があります。この記事では、それらを 1 つずつ適用する方法を示します。次の図は、この記事の目的を強調しています。記事をざっと見て、残りの使い方を学んでください。 下のダウンロードボタンから練習用ワークブックをダウンロードできます。 Excel のデータベース関数の概要 Excel のデータベース関数を使用すると、特定のデータベースに対して合計、積、平均などの簡単な操作を実行できます。 Excel には 12 のデータベース関数があります。これらは、DSUM、DAVE