再帰と反復の違い

主な違い:プログラミングでは、再帰は再帰関数を考慮することで説明できます。 再帰的関数はコードを繰り返すためにそれ自身を再び呼び出すものです。 一方、反復は、コードの一部を繰り返すためにループする反復関数によって実現されます。

プログラミングでは、繰り返しを実現するために再帰と反復の両方が使用されます。 彼らは何度も繰り返されるプロセスを指します。 再帰は、条件が満たされるまで何かが自分自身を参照するというアプローチに基づいています。 メソッドは、直接または間接的に自分自身を呼び出すことができる場合、再帰的であると言われます -

void name()

{

... name()...

}

または

void name()

{

...ゲーム()...

}

void game(){

... name()...

}

再帰を成功させるためには、再帰プロセスで行われるすべての呼び出しが計算を単純化しなければならないことに留意しなければなりません。 再帰は基本ケースを定義することによって達成されます。

int階乗(int N)

{

(N == 0)の場合は1を返します。

そうでなければ(N *階乗(N-1))を返す。

}

この例では、再帰はステートメント(N * factorial(N-1))で簡単に見ることができ、そこでは階乗関数を再度呼び出しています。 再帰はコードの短縮に役立ちますので非常に役に立ちます。 ただし、再帰はパフォーマンスがやや遅くなります。

繰り返しはループに基づいています。 これらのループは明示的な反復処理を表します。 ループの要件を満たすためには、それ以上の反復を停止する何らかのタイプの基準が必要です。 ただし、ループ条件テストが偽にならない場合は、その条件では無限ループの発生は避けられません。 この例では、階乗は反復プロセスを使用して決定されています -

関数階乗(n)

{

varループ、結果。

結果= 1。

for(loop = 1; loop <= n; loop ++)

{

result = result * loop;

}

結果を返します。

}

この例では、1からnまでの整数を使用してループ処理を行い、それ以降のループ処理を停止するための基準としてloop <= nステートメントを使用します。 したがって、再帰と反復を使用しても同じ結果が得られると結論付けることができます。 ただし、どちらも少し異なるアプローチに基づいています。 どのような再帰的アルゴリズムも、反復(ループ)を使って書くことができます。

再帰と反復の比較

再帰

繰り返し

定義

再帰とは、コードを繰り返すために自分自身を再度呼び出す再帰関数のことです。

反復は、コードの一部を繰り返すためにループする反復関数によって実現されます。

重要なポイント

基本ケースを決定する必要があります

終了条件を決定する必要があります

パフォーマンス

比較的遅い

比較的速い

メモリ使用量

比較的もっと

比較的少ない

コード

小さい

より長いです

無限の繰り返し

無限再帰はシステムをクラッシュさせる可能性があります

無限ループはCPUサイクルを繰り返し消費します

構造

選択

繰り返し

ローカル変数

必須ではありません

必須

推奨されます

関連記事

  • との差: HTC OneとHTC One Xの違い

    HTC OneとHTC One Xの違い

    主な違い: HTC Oneはもともと同社によって一連のAndroid携帯電話のブランド名として発売されました。 現在、同社は2013年3月に発売予定の新しい電話機をHTC Oneという名前で発売しています。 HTC Oneは、ハードウェア設計およびソフトウェア設計においてOne Xと比較して優れていると予想されます。 独自のカメラ実装も含まれています。 最近の技術の絶え間ないアップグレードにより、新しいモデルのスマートフォンおよび新しい機能を備えたアップグレードされたスマートフォンのモデルが絶えず市場で発売されている。 スマートフォンは、外出先でもあらゆることができるようにすることで、多くの人々の生活様式になりました。 これには、文書の入力、友人とのチャット、ビデオ会議、レポートの作成、電子メールの確認などが含まれます。台湾の会社であるHTC Corporationは、スマートフォンおよびタブレットの市場における主要企業の1つです。 HTC Oneはもともと同社によって一連のAndroid携帯電話のブランド名として発売されました。 これらには、HTC One X、HTC One X +、HTC One Vなどが含まれています。現在、同社は、2013年3月に発売予定の新しい電話機をHTC Oneという名前で発売しています。 HTC One Xは2012年5月に発売されました。この電話機
  • との差: オペコードとバイトコードの違い

    オペコードとバイトコードの違い

    主な違い: オペコードは機械語命令の一種です。 提供されたデータをどう処理するかを指示する命令をコンピューターに提供します。 バイトコードは、それがマシンに何をすべきかを指示するので、本質的にオペコードに似ています。 ただし、バイトコードはプロセッサによって直接実行されるように設計されているのではなく、JavaやCLRなどのソフトウェアベースのインタプリタによって実行されるように設計されています。 オペコードはオペレーションコードの略です。 その名前が示すように、オペコードはマシンに何をすべきか、すなわちどの操作を実行するのかを指示する一種のコードです。 オペコードは機械語命令の一種です。 提供されたデータをどう処理するかを指示する命令をコンピューターに提供します。 オペコードに加えて、それはまた機械にオペランドを提供し、それは基本的に命令が従わなければならないデータである。 どのアーキテクチャが使用されているかに基づいて、オペランドは、レジスタ値、スタック内の値、他のメモリ値、I / Oポートなどであり、多かれ少なかれ複雑なアドレッシングモードを使用して指定されアクセスされる。 一方、演算は、加算または減算、データコピー、論理演算、プログラム制御などの算術演算、およびCPUIDなどの特殊命令で実行できます。 バイトコードは、それがマシンに何をすべきかを指示するので、本質的にオペコー
  • との差: Nokia Lumia 920とNokia Lumia 820の違い

    Nokia Lumia 920とNokia Lumia 820の違い

    主な違い: このブランドの最初のスマートフォンの1つがNokia Lumia 920です。NokiaLumia 920は、Windows Phone 8で動作する最初に開発された電話の1つです。2012年11月に主力電話として発売されました。 Nokia Lumia 820は、Nokia 920のやや安価な代替品と同時に発売されました。 ノキアはフィンランドを拠点とする多国籍通信および情報技術企業です。 Nokiaの携帯電話はシンプルで丈夫なものとして知られています。 2012年には、Samsungに続いて、販売台数で世界第2位の携帯電話メーカーとなりました。 しかし、Nokiaの売上は、iPhoneやAndroidなどのスマートフォンへの市場の移行がますます進むにつれて、減少しています。 売上の減少を補うために、NokiaはMicrosoftと提携して、Windows Phone Operating Software上で動作する自社製のスマートフォン、Nokia Lumiaを発売した。 Nokia Lumia 920は、Windows Phone 8上で開発された最初の携帯電話の1つです。2012年11月に主力電話として発売されました。 同時に、NokiaはNokia Lumia 920のやや安価な代替品としてNokia Lumia 820を発売しました。 ノキアLumia 920
  • との差: H1とB1ビザの違い

    H1とB1ビザの違い

    主な違い: H1ビザの下では、米国の雇用者は一時的に外国人専門家を雇って彼らのために働くことができます。 B1ビザは、基本的に米国の非移民ビザのためのビジネスビザです。 このビザは、ビジネス関連の活動のために、短期間アメリカ合衆国に旅行したい人々のためのものです。 海外に旅行するとき、ビザは人が準備しなければならない最も重要なことの1つです。 チケットを購入するなど、実際の準備が始まる前に、その国を訪問するために有効であるかどうかを確認するためにビザを申請する必要があります。 米国などの国を訪問するとき、ビザは大きな役割を果たします。米国の市民の居住者ではない各人は、事前にその国に入国する意思を宣言しなければなりません。 ただし、ビザの発行が免除されているのは特定の国であることに注意してください。 これらの国の出身である人は、ビザを申請する必要なしに自由に米国に出入りすることができます。 訪問の理由に応じて、人は適切なビザを申請しなければなりません。 合法的に米国に入国するために外国人に提供されるビザの主なカテゴリーがあります。 カテゴリーH1とカテゴリーB1はそのような2つのカテゴリーです。 これらは両方とも異なる目的を果たします。 カテゴリーH-1は外国人労働者に提供される非移民ビザです。 このビザの下で、米国の雇用者は一時的に外国人専門家を雇って彼らのために働くことができます。
  • との差: インド門とインドのゲートウェイの違い

    インド門とインドのゲートウェイの違い

    主な違い: インド門はインドの首都であるニューデリーにあります。 一方、インドのゲートウェイはムンバイにあります。ムンバイは金融の中心地であり、インド最大の都市です。 インドは歴史のある国です。 この歴史の多くはその記念碑に見ることができます。 そのような2つの記念碑は、インド門とインドのゲートウェイです。 名前が似ているように聞こえるので、インディアンを含む多くの人々は実際に2つを混同します、またはさらに悪いことに彼らは1と同じだと思います。 しかし、そうではありません。 彼らは実際には2つの非常に異なる記念碑です。 両者の主な違いは記念碑の場所です。 インド門は、インドの首都であるニューデリーにあります。 一方、インドのゲートウェイはムンバイにあります。ムンバイは金融の中心地であり、インド最大の都市です。 両者のもう一つの大きな違いは、記念碑が建てられた理由です。 どちらもイギリスのラジ、すなわちイギリスがインドを支配した時代にさかのぼります。 事実、インドのゲートウェイは、ジョージ5世とメアリー2世のインド訪問を記念して建てられました。 ジョージ5世国王とメアリー女王がデリー・ダルバールのためにインドに来たとき、彼らはムンバイの港、または当時のボンベイから国に入った。 デリーDurbarはインドの皇帝としての王ジョージVの戴冠式でした。 しかし、1911年12月にジョージ5世王
  • との差: サムスンギャラクシータブ3 7.0とネクサス7の違い

    サムスンギャラクシータブ3 7.0とネクサス7の違い

    主な違い: サムスンギャラクシータブ3 7.0は7インチWSVGA TFTタッチスクリーンを搭載しており、従来のタブレットに比べて薄型化されているため、サイズは188 x 111.1 x 9.9 mmです。 タブレットは実際にはローエンドの範囲を対象としています。 Nexus 7は、Android 4.1(Jelly Beanとも呼ばれる)オペレーティングシステムを実行しているタブレットコンピュータです。 Asusと共同開発しました。 サムスンはタブレットのラインナップに真新しい7インチデバイスの追加を発表しました。 サムスンギャラクシータブ3 7.0と呼ばれるデバイスは、ギャラクシータブ2の後継者です。ユーザーがギャラクシーS4のメーカーから別のハイエンドタブレットを待っていたな
  • との差: エルクとカリブーの違い

    エルクとカリブーの違い

    主な違い: エルクとカリブーは鹿の家族の一員であるため、お互いに非常によく似ています。 ただし、それらの間にも多くの違いがあります。 ヨーロッパのほとんどでは、ヘラジカは「ワピティ」と呼ばれていますが、カリブーはトナカイとして知られています。 エルクとカリブーは鹿の家族の一員であり、それゆえ互いに非常に似ています。 ただし、それらの間にも多くの違いがあります。 鹿は基本的にはCervidae科の動物です。 ヘラジカは主に北アメリカ西部と東アジアで発見されている大型の鹿種です。 しかし、それらはアルゼンチン、オーストラリア、ニュージーランドなどの新しい地域や生息地に導入されていました。 ヨーロッパの大部分では、ヘラジカは「wapiti」と呼ばれています。これは、Shawnee and Creeの単語「waapiti」に由来します。 Wapitiは特にアジアの亜種に使われています。 ユーラシアでは、エルクという名前は、基本的にムースであるAlces alces種を指す傾向があります。 カリブーも大きな鹿の種です。 しかし、それは主に北アメリカ、ヨーロッパ、アジア、グリーンランドの北部地域を含む北極と亜寒帯地域に存在します。 カリブーはヨーロッパでトナカイとして知られています。 ElkとCaribouの詳細な比較: エルク カリブー 科学的分類 動物界 - 脊索動物 - ほ乳類 - 偶蹄目
  • との差: 片岩と片麻岩の違い

    片岩と片麻岩の違い

    主な違い: 片岩と片麻岩は、非常に似ている2種類の岩です。 片岩は平らな、シート状の穀物をパターンに含む中程度の変成岩の一種です。 一方、片麻岩は、シート状の平面構造の層のパターンで形成されている。 片岩と片麻岩は、非常に似ている2種類の岩です。 その理由は、それらが両方とも変成岩であるためです。 変成岩は、既存の岩の種類の変換から形成された岩です。 これらの岩石は、加熱と冷却のさまざまなプロセスを通して時間とともに変化します。 片岩と片麻岩に加えて、他の変成岩の例には、スレート、大理石、珪岩が含まれます。 片岩と片麻岩を区別することの問題は、それらが特に地質学に精通していない誰かに非常に似ているかもしれないということです。 片岩は平らな、シート状の穀物をパターンに含む中程度の変成岩の一種です。 一方、片麻岩は、シート状の平面構造の層のパターンで形成されている。 これらの層はしばしば明暗のパターンで交互に並ぶ。
  • との差: プログラミングにおけるインタプリタとトランスレータの違い

    プログラミングにおけるインタプリタとトランスレータの違い

    主な違い: 翻訳者は特定の目的を果たす一種のコンピュータプログラムです。 その名前が示すように、翻訳者はコードをあるプログラミング言語から別のプログラミング言語に翻訳します。 一般的に使用されている翻訳プログラムには、コンパイラとインタプリタの2種類があります。 インタプリタは、高水準言語から低水準言語へのプログラムの解釈に特に使用されることを除いて、翻訳プログラムと同じことを行います。 プログラミングは、特にそのテーマの背景がないか、または始めたばかりの人々にとって、非常に難しいテーマになる可能性があります。 それでも、しばらくの間プログラミングをしてきた人々にとってさえ混乱を招く可能性がある多くの概念があります。 そのような概念の1つは、通訳者と翻訳者の違いです。 それらがお互いに違うのはなぜですか? なぜ使われているの? 確認してみましょう。 トランスレータは特定の目的を果たす一種のコンピュータプログラムです。 その名前が示すように、翻訳者はコードをあるプログラミング言語から別のプログラミング言語に翻訳します。 たとえば、あるコードをC ++からCなどの別の言語に翻訳したい場合は、トランスレータを使用できます。 翻訳者の主な機能は、プログラムを高級言語から同等の機械語に翻訳することです。 翻訳者に加えて、翻訳者はプログラマーが高級言語プログラムの仕様に違反している場合は常に診断

エディターズチョイス

泡風呂と泡風呂の違い

主な違い: 泡風呂は泡を形成するために界面活性剤製品を使用する浴槽または浴を意味します。 泡浴はまた泡風呂を指し、そこでは泡の大量の集まりが風呂水の表面に形成される。 泡風呂は、泡が風呂水の上に形成される風呂を指すのに使用される。 これらの気泡は様々な方法で形成することができる。 任意の発泡性界面活性剤を使用して水と混合することができる。 その後、一時的に空気を追加すると気泡が発生します。 空気は一般的に浴槽の蛇口から水を注ぐことによって追加されます。 泡とは、一番上の水層に形成された泡のことです。 したがって、泡風呂と泡風呂は基本的に違いはありません。 泡風呂は泡風呂のちょうど他の名前です。 しかしながら、一般に泡浴より泡泡浴の使用がより好ましい。 泡風呂は風呂の水を断熱するのに役立つのでしばしば好まれ、それ故にそれはより長い間熱いままである。 これらの泡風呂は子供にとってもっと楽しいアクティビティです。 当初1950年頃、界面活性剤のような石油系洗剤が気泡成分として使用されました。 彼らは何度もそれらによって生成された過酷な効果のために肌に良いとは考えられていません。 その後、植物油硫酸ナトリウムグループが導入されました。 それは高価でしたが、穏やかで穏やかであることが好まれました。 それは多くの泡を作りますが、スルホン酸塩(石油系洗剤)のように油やグリースを扱うのにはそれほど良