乙個簡單的遞迴演算法的思考

2021-07-11 21:04:05 字數 1465 閱讀 3128

一、遞迴演算法的概述

遞迴演算法的描述:把乙個大規模的問題劃分為乙個個小規模的同類問題的子問題。

遞迴演算法的特徵:1、在函式中呼叫其本身;

2、必須有乙個明確的遞迴出口;

3、遞迴結果的輸出是乙個堆疊結構,最後的結果最先輸出,最初的結果最後輸出。

二、乙個簡單的遞迴演算法的思考

思考一:遞迴語句最後的輸出結果是?

public class test 

return result;

} public static void main(string args)

}

輸出結果:

結果分析:

因為遞迴的輸出的結果是堆疊結果式的,堆疊的最大特點就是先進後出,後進先出。因此上述程式的輸出結果也是按照該規則輸出的,最後的result輸出為3。

思考二:若遞迴中有多個遞迴呼叫,輸出結果又會如何?

public class test 

return result;

} public static void main(string args)

}

輸出結果:

結果分析:

以上程式增加了乙個遞迴方法的呼叫以及乙個列印語句輸出。輸出的結果的流程大致為:

思考三:輸出語句的位置會不會對輸出結果有影響?

再把上述程式稍微修改一下

public class test 

return result;

} public static void main(string args)

}

輸出結果: 

結果分析:

以上程式把輸出語句的位置變換了一下,輸出結果的順序卻發生了改變。

思考四:有多條輸出語句,輸出結果又會發生怎樣的變化?

public class test 

return result;

} public static void main(string args)

}

對這個感興趣的同學,可以自己動手編碼執行一下程式,分析一下結果。

乙個遞迴演算法

要求實現1,1,2,3,5,8,13,21,這樣乙個序列。分析一下輸出結果 發現後乙個數字是前2個數字的和。遞迴演算法如下 public static int recursion int i if i 0 return 0 else if i 0 i 2 return 1 else return r...

Treeview的乙個遞迴演算法

option explicit private sub form load with treeview1 nodes.add parent1 test1 nodes.add parent1 tvwchild,child1 test ch1 nodes.add parent1 tvwchild,chi...

乙個關於遞迴的演算法。

從鍵盤輸入乙個整數 1 20 則以該數字為矩陣的大小,把1,2,3 n n 的數字按照順時針螺旋的形式填入其中。例如 輸入數字2,則程式輸出 1 24 3輸入數字3,則程式輸出 1 2 3 8 9 4 7 6 5 輸入數字4,則程式輸出 1 2 3 4 12 13 14 5 11 16 15 6 1...