麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

java中的遞歸方法

2019-11-15 00:33:35
字體:
供稿:網(wǎng)友
java中的遞歸方法

一、含義

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

二、例子

99乘法表的例子

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

123456789101112131415package 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:用遞歸方式實現(xiàn) 99乘法表代碼如下:

1234567891011121314151617181920212223package 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(); } } }

遞歸的方式調(diào)用圖示:

每一個方法的調(diào)用都會產(chǎn)生一個棧幀,壓入到方法棧,當(dāng)遞歸調(diào)用的時候,方法棧中棧幀的圖示和上圖類似。去掉方法中棧幀的引用關(guān)系更加直觀:如下圖所示:

簡化掉相應(yīng)的方法調(diào)用最后執(zhí)行情況如上圖所示,注意 i 一直在變 j每次都是從1開始 然后遞增到和i相等。這樣上圖依次出棧后就得到了 99 乘法表:

總結(jié):

嵌套for循環(huán) 和 用遞歸實現(xiàn) 的比較:

棧 主要是用來存放棧幀的,每執(zhí)行一個方法就會出現(xiàn)壓棧操作,所以采用遞歸的時候產(chǎn)生的棧幀比較多,遞歸就會影響到內(nèi)存,非常消耗內(nèi)存,而使用for循環(huán)就執(zhí)行了一個方法,壓入棧幀一次,只存在一個棧幀,所以比較節(jié)省內(nèi)存。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产一区在线观看 | 操网 | 操操操日日日干干干 | 一区二区三区视频在线 | 黄网站进入| 91精品国产成人 | 成人一级视频在线观看 | 99精品国产成人一区二区 | 日本在线视频一区二区三区 | 黄色一级片毛片 | 国产精品一区久久久久 | 在线视频 亚洲 | 天海翼无删减av三级在线观看 | 日本看片一区二区三区高清 | 激情亚洲一区二区 | 毛片在线免费 | 91www成人久久 | 国产日韩在线观看一区 | xxxx欧美视频| 自拍偷拍999| 秋霞a级毛片在线看 | 国内精品免费一区二区2001 | 国产精品久久久久久久av | 成人短视频在线观看 | 4p嗯啊巨肉寝室调教男男视频 | 鲁丝一区二区二区四区 | 麻豆视频在线免费观看 | 成人午夜视频免费在线观看 | 国产自在线 | 欧美成人精品一级 | 成人免费网站在线观看视频 | 久久狠狠高潮亚洲精品 | 性欧美极品xxxx欧美一区二区 | 日韩视频一区二区三区在线观看 | 福利在线小视频 | 亚洲国产女同久久 | 麻豆国产一区 | 久久91久久久久麻豆精品 | 一区二区久久久久草草 | 亚洲精品一区二区三区在线看 | 红桃一区 |