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)的递归过程
评论
发表评论

提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则

您还没有登录,请登录后发表评论

xiaoZ5919
搜索本博客
博客分类
最近加入圈子
最新评论