目錄
044 遞歸 e04 冒泡排序2
044 遞歸 e05 插入排序1
044 遞歸 e05 插入排序2
045 多路遞歸 斐波那契
046 多路遞歸 斐波那契 時間復雜度
047 多路遞歸 斐波那契 兔子問題
048 多路遞歸 斐波那契 青蛙跳臺階
049 遞歸 優化 記憶法
050 遞歸 爆棧問題
051 遞歸 尾調用與尾遞歸
052 遞歸 尾遞歸避免爆棧
053 遞歸 主定理求時間復雜度 1
054 遞歸 主定理求時間復雜度 2
055 遞歸 展開求時間復雜度 1
056 遞歸 展開求時間復雜度 2
057 多路遞歸 e02 漢諾塔1
057?多路遞歸 e02 漢諾塔2
057?多路遞歸 e03 楊輝三角1
thinking:Java Arrays.fill()?
thinking:減號,左對齊?
044 遞歸 e04 冒泡排序2
當排序到一定程度的時候,就不再需要排序了,因為有的本身就已經排好序了。減少排序的次數。
沒有發生交換,意味著有序。有發生交換,意味著無序。在每一輪的排序中,i充當無序與有序的界限。每一輪結束后,x被授予i的職責,充當這一輪無序與有序的界限。于是,下一次的遞歸,就只要排x左邊的元素了。
044 遞歸 e05 插入排序1
當要插入的元素是整個數組中最小的那個,就會出現以下的情況。因此,要設置當i小于0的時候就要退出循環。
?
044 遞歸 e05 插入排序2
當要找的元素就是low的時候,就不用這么麻煩了。因此,優化代碼。
045 多路遞歸 斐波那契
?
046 多路遞歸 斐波那契 時間復雜度
多少個圓圈,就代表調用了多少次。
047 多路遞歸 斐波那契 兔子問題
048 多路遞歸 斐波那契 青蛙跳臺階
049 遞歸 優化 記憶法
重復計算的值非常多,想要簡便運算,就設置數組,儲存已經算過的數值。當以后還需要用到這些數值的時候,就不用再計算了,直接從數組中尋找即可。
用空間換取時間。
?
050 遞歸 爆棧問題
當傳入的數據量特別大的情況下,就會爆棧
051 遞歸 尾調用與尾遞歸
052 遞歸 尾遞歸避免爆棧
?Scala可以通過尾遞歸的方式使它不要爆棧
@tailrec注解可以幫助我們檢查我們的寫法是否符合尾遞歸的寫法。
根本解決方案:?
053 遞歸 主定理求時間復雜度 1
找出abc,然后套公式即可以。?
054 遞歸 主定理求時間復雜度 2
?
?
055 遞歸 展開求時間復雜度 1
?
056 遞歸 展開求時間復雜度 2
開掛網址
057 多路遞歸 e02 漢諾塔1
?
?
057?多路遞歸 e02 漢諾塔2
?
因為第一次和第二次傳進去的柱子是不一樣的。所以第一次的c.addLast(a.removeLast())和第二次的是不一樣的。
?
057?多路遞歸 e03 楊輝三角1
?
?
thinking:Java Arrays.fill()?
Java Arrays.fill() 方法詳解-CSDN博客?
thinking:減號,左對齊?
但這個例子是在C中的。
C語言中字符對齊問題_打印多行字符串時如何中心對齊c-CSDN博客?