Java で再帰とループをテストするにはどうすればよいですか?

PHPz
リリース: 2023-04-23 19:40:16
転載
1492 人が閲覧しました

再帰とループの実行効率とシステム オーバーヘッドをテストします (ここでは for が使用されています)。まず、問題例を投稿します: フィボナッチ数列の実装 F(n)=F(n-1) F(n-2)

テスト環境 Eclipse

1. まず再帰を使用して

package com.youfeng.test;   public class Fab {//递归   public static void main(String [] args){       System.out.println(F(40));   }   public static Long F(int index){       if(index==1||index==2){           return 1L;      }      else{          return F(index-1)+F(index-2);      }  }  }
ログイン後にコピー

2. for ループを使用して実装

package com.youfeng.test;  public class Fab2 {//循环      public static void main(String [] args){          System.out.println(F(40));      }      public static Long F(int index){          if(index==1||index==2){              return 1L;          }          else{              Long f1=1L;              Long f2=1L;              Long f=0L;              for(int i=0;i<index;i++){                  f1=f2;                  f2=f;                  f=f1+f2;              }              return f;          }      }  }
ログイン後にコピー

index の値が非常に大きい場合小さい場合は別々に実行します 違いはありません 実行速度の違いは感じられませんが、インデックスを十分大きな値 (100、200、300、1000...) に調整すると、for ループで簡単に処理できるようになります実行速度が非常に速い。

再帰を使用すると、明らかな詰まりが見つかります。システム リソース マネージャーを呼び出して、システムのオーバーヘッドを確認します (スタックしてリソース マネージャーを開けない場合があります)。

以上がJava で再帰とループをテストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート