论坛首页 入门技术论坛

初步递归

浏览 1268 次
锁定老帖子 主题:初步递归
该帖已经被评为新手帖
作者 正文
   发表时间:2007-12-15  
在学习java之前,看过别的语言描述的递归。对递归也有大致的认识,遇到一些简单的显而易见的递归问题也能解决,但对递归的实现过程还是不了解。昨天痛下决心要把数据结构再深刻的学习一下,还是从递归学起。说白了递归就是自己调用,当然得有一个停止的条件,否则会无限制的调用下去。

拿两个例子对递归做初步认识吧


public static void f(int n){
 
   System.out.println(n);
   if( n > 1){
    f( n - 1);
   }
}

public static void ff(int n){
 
   if( n > 1){
    ff( n - 1);
   }
   System.out.println(n);
}

f(3),ff(3)它们会打印出什么结果呢

分析这个过程 首先是f(3)执行打印3

然后 f(3)调用f(2)

打印2

这时n= 2仍然大于1调用f(1)

打印1

同时调用完毕 结束 得到以上的结果

这是一个显而易见比较好分析的递归过程

待续分析ff(3)的递归过程
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics