论坛首页 入门讨论版

初步递归

浏览 190 次
该帖已经被评为新手帖
作者 正文
最后更新时间: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)的递归过程
   
论坛首页 入门讨论版

跳转论坛:
JavaEye推荐