Java语言程序设计教程
上QQ阅读APP看书,第一时间看更新

2.4 递归

如果一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归(Recurve)的,如果一个方法直接或间接地调用自己,则称这个方法是递归的方法。递归是Java语言程序设计中常用的算法,它能够把复杂问题简单化,可以应用在数据结构与算法中解决一些比较复杂的问题,如搜索、排序等。

递归的基本思想是分治法,对于一个较为复杂的问题,将其分解成几个相对简单而且方法相同或类似的问题,当同性质的问题被简化得足够简单时,将可以直接获得问题的答案,就不必再调用自己了,此时,递归方法就要有递归结束条件。

例题2.13 封装了一个递归应用的程序。

用递归解决问题使得程序结构简洁,但是递归占用大量的内存,尤其是当递归层次较多时,程序的运算速度比使用循环结构要慢得多。

例题2.14 封装了利用递归和循环两种方法求解问题的程序。