大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 編程基礎技術,java中的遞歸方法

編程基礎技術,java中的遞歸方法

更新時間:2020-06-16 13:41:51 來源:動力節點 瀏覽2400次

一、含義

遞歸算法是一種直接或間接地調用自身的算法。在計算機編寫程序中,遞歸算法對解決一大類問題是十分有效的,它往往使算法的描述簡潔而且易于理解。

二、例子

99乘法表的例子

1:普通實現99乘法表太簡單,是個程序員都會,實現如下:

package?test.ms;
?
public?class?Test99?{
??public?static?void?main(String[]?args)?{
??for(int?i=1;?i<=9;i++){
???for(int?j=1;?j<=i;?j++){
???System.out.print(j+"?*?"+i+?"?=?"+(i*j)?+"?");
???}
???System.out.println();
??}
}??
}

2:用遞歸方式實現99乘法表

代碼如下:

package?test.ms;
?
public?class?MultiTable?{
?public?static?void?main(String?args[])?{?
????m(9);?
??}?
??/**?
???*?打印出九九乘法表?
???*?@param?i?
???*/
??public?static?void?m(int?i)?{?
????if?(i?==?1)?{?
??????System.out.println("1*1=1?");?
????}?else?{?
??????m(i?-?1);?
??????for?(int?j?=?1;?j?<=?i;?j++)?{?
????????System.out.print(j?+?"*"?+?i?+?"="?+?j?*?i?+?"?");?
??????}?
??????System.out.println();?
????}?
??}??
}

遞歸的方式調用圖示:

編程基礎技術,java中的遞歸方法

每一個方法的調用都會產生一個棧幀,壓入到方法棧,當遞歸調用的時候,方法棧中棧幀的圖示和上圖類似。

去掉方法中棧幀的引用關系更加直觀:如下圖所示:

編程基礎技術,java中的遞歸方法

簡化掉相應的方法調用最后執行情況如上圖所示,注意i一直在變j每次都是從1開始然后遞增到和i相等。

這樣上圖依次出棧后就得到了99乘法表:

總結:

嵌套for循環和用遞歸實現的比較:

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

以上就是動力節點java培訓機構的小編針對“編程基礎技術,java中的遞歸方法”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 成人看片黄a毛片 | 久色中文 | 精品国产你懂的在线观看 | 国产亚洲综合一区二区在线 | 日韩精品麻豆 | 久久99精品麻豆国产 | 久久久综合九色合综 | 国产一级视频播放 | 九九黄色大片 | 日韩一区三区 | 国自产拍在线天天更新2019 | 久久99热在线观看7 久久99热这里只有精品 | 国产图片亚洲精品一区 | 中文字幕不卡在线观看 | 手机免费看一级片 | 日本一级毛片私人影院 | 欧美日韩中文字幕在线手机版本 | 欧美成人免费在线视频 | 国产亚洲精品97在线观看 | 免费观看黄色毛片 | 久草在线中文最新视频 | 免费一级a毛片免费观看欧美大片 | 91精品国产麻豆国产自产在线 | 欧美一级特黄乱妇高清视频 | 亚州视频在线 | 成人夜视频 | 亚洲伦理视频 | 中文字幕精品一区二区日本大胸 | 黄页网址大全免费观看美女 | 一区二区中文字幕 | 爱爱夜夜爽成人夜夜爽 | 在线精品国精品国产不卡 | 一区二区三区在线播放 | 伊人亚洲综合网 | 成人中文字幕一区二区三区 | 久久国产综合尤物免费观看 | 国产成人mv在线观看入口视频 | 国产手机在线国内精品 | 久久免费视频7 | 性视频一区二区三区免费 | 在线免费黄色网址 |