|
遞歸是一種常見的解決問題的方法,即把問題逐漸簡單化。 遞歸的基本思想就是 自己調(diào)用自己 ”,一個使用遞歸技術(shù)的方法將會直接或者間接的調(diào)用自己。利用遞歸可以用簡單的程序來解決一些復(fù)雜的問題。比如:大多數(shù)排序使用的就是遞歸算法。 一、遞歸結(jié)構(gòu)包括兩個部分
public static void print(int i) {System.out.println(i);
if(i==10){ //遞歸頭 return; //提前結(jié)束方法}
print(++i); //遞歸}public static void main(String[] args) {
print(1); //打印1~10之間的數(shù)據(jù)
}![]()
這個圖片很好的詮釋了遞歸,需Java全套到Java架構(gòu)師課程請私信哦~ 我們可以使用代碼實現(xiàn)打印 public static void recursion(int i) {
System.out.println("抱著");
if (i==0) { //臨界條件System.out.println("我的小鯉魚");
} else {
recursion(--i); // 遞歸調(diào)用}
System.out.println("的我");}public static void main(String[] args) {
System.out.println("嚇得我抱起了");
recursion(2);}二、遞歸三要素
三、遞歸的缺陷簡單的程序是遞歸的優(yōu)點之一。但是遞歸調(diào)用會占用大量的系統(tǒng)堆棧,內(nèi)存耗用多,在遞歸調(diào)用層次多時速度要比循環(huán)慢的多。所以再使用時要慎重。 注意:任何可用遞歸解決的問題也能使用迭代解決。但遞歸方法可以更加自然地反映問題,并且易于理解和調(diào)試,并且不強(qiáng)調(diào)效率問題時,可以采用遞歸; 在要求高性能的情況下盡量避免使用遞歸,遞歸調(diào)用既花時間又耗內(nèi)存。 |
|
|