- Java语言程序设计教程
- 胡光
- 340字
- 2021-03-29 13:14:21
2.4 递归
如果一个对象部分地包含它自己,或用它自己给自己定义,则称这个对象是递归(Recurve)的,如果一个方法直接或间接地调用自己,则称这个方法是递归的方法。递归是Java语言程序设计中常用的算法,它能够把复杂问题简单化,可以应用在数据结构与算法中解决一些比较复杂的问题,如搜索、排序等。
递归的基本思想是分治法,对于一个较为复杂的问题,将其分解成几个相对简单而且方法相同或类似的问题,当同性质的问题被简化得足够简单时,将可以直接获得问题的答案,就不必再调用自己了,此时,递归方法就要有递归结束条件。
例题2.13 封装了一个递归应用的程序。
![](https://epubservercos.yuewen.com/1D447A/17180253504507306/epubprivate/OEBPS/Images/img00049002.jpg?sign=1739204617-qw0BpCleHahMLLojXcYNDxvAdnMSu80Z-0-1eb49d23d00d05153321b358be8c4af0)
用递归解决问题使得程序结构简洁,但是递归占用大量的内存,尤其是当递归层次较多时,程序的运算速度比使用循环结构要慢得多。
例题2.14 封装了利用递归和循环两种方法求解问题的程序。
![](https://epubservercos.yuewen.com/1D447A/17180253504507306/epubprivate/OEBPS/Images/img00049003.jpg?sign=1739204617-7Vf2xvYrci4VAcBjpYPOgOiIgIA9j2hY-0-554bd3fc5b5c2802c913da6226188cf9)
![](https://epubservercos.yuewen.com/1D447A/17180253504507306/epubprivate/OEBPS/Images/img00050001.jpg?sign=1739204617-SJp5iEVBoQxwq0neTFoqXrvB7b8r1HgP-0-14a88b6ba97b9860d913ea6e70504565)