中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中遞歸和循環的優劣勢

發布時間:2021-08-27 21:31:43 來源:億速云 閱讀:176 作者:chen 欄目:編程語言

這篇文章主要講解了“Java中遞歸和循環的優劣勢”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Java中遞歸和循環的優劣勢”吧!

循環:當滿足某一條件時反復執行某一操作(循環體)。

遞歸:在一個方法內部對自身進行調用的方法。

遞歸結構包括兩個部分:

  1、遞歸頭:即什么時候不調用自身方法,也就是遞歸的結束條件。如果沒有遞歸頭,程序將陷入死循環。

  2、遞歸體:即什么時候需要調用自身方法。

好了,廢話不多說,直接來擼代碼(計算階乘的方法)。

package com.bjwyj.method;
/**
 * 遞歸和循環的比較
 * @author 吳永吉
 *
 */
public class TestRecursion {
 public static void main(String[] args) {
 //以下調用System下的currentTimeMillis()方法只是為了說明遞歸調用比循環調用更耗時
 long l1 = System.currentTimeMillis(); 
 System.out.println(factorial(5));
 long l2 = System.currentTimeMillis();
 System.out.println("遞歸計算階乘耗時:"+(l2-l1));
 
 System.out.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$");
 long time1 = System.currentTimeMillis();
 System.out.println(factorialLoop(5));
 long time2 = System.currentTimeMillis();
 System.out.println("循環計算階乘耗時:"+(time2-time1));
 }
 
 //使用遞歸定義計算階乘的方法
 public static long factorial(int num) {
 if(num==1) { //遞歸頭
 return 1;
 }else {
 return num*factorial(num-1); //遞歸體
 }
 }
 
 //使用循環定義計算階乘的方法
 public static long factorialLoop(int n) {
 int result = 1; //接收計算結果
 while(n>1) {
 result *= n*(n-1); //實現計算結果的累乘操作
 n -= 2; //每次減去2,實現數字的迭代操作
 }
 return result;
 }
}

執行結果:

120
遞歸計算階乘耗時:1
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
120
循環計算階乘耗時:0

由結果可以看出,使用遞歸算法比使用循環算法更耗時。

為了更好地比較遞歸算法的優劣,上述采用while循環與遞歸算法進行對比。

總結:

棧,主要是用來存放棧幀的,每執行一個方法就會出現壓棧操作,所以采用遞歸的時候產生的棧幀比較多,遞歸就會影響到內存,非常消耗內存。而使用循環就執行了一個方法,壓入棧幀一次,只存在一個棧幀,所以比較節省內存。

感謝各位的閱讀,以上就是“Java中遞歸和循環的優劣勢”的內容了,經過本文的學習后,相信大家對Java中遞歸和循環的優劣勢這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

寻甸| 乳山市| 福清市| 太康县| 凤城市| 三河市| 通辽市| 五家渠市| 鄱阳县| 简阳市| 大田县| 梧州市| 鲁甸县| 马公市| 四子王旗| 原阳县| 呈贡县| 高台县| 通道| 铁力市| 亳州市| 建湖县| 广丰县| 方正县| 乾安县| 古浪县| 汝州市| 泸州市| 佳木斯市| 武安市| 遵义市| 虹口区| 鲁甸县| 聊城市| 西乡县| 宿迁市| 改则县| 衡水市| 益阳市| 奎屯市| 黔南|