經典演算法系列之 遞迴

2022-08-23 16:57:10 字數 1065 閱讀 1830

1、前言

演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。

演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種「思維方式」。演算法思維,是一種深度思考和創造的過程。

演算法,只有真正理解了,而不只是所謂的知道,並將應用到生活、工作、學習等各個方面,它將一定使人受益終生。

2、原理推導

遞迴,遞迴是方法迴圈呼叫自己,直到求出結果滿足條件才停止迴圈的演算法。

示例:求5的階乘,計算公式為n! = n * (n- 1)!

//按照公式推導,5!= 5*(5 - 1)!

public int factorial5(int n)

//按照公式推導,4!= 4*(4 - 1)!

public int factorial4(int n)

//按照公式推導,3!= 3*(3 - 1)!

public int factorial3(int n)

//按照公式推導,2!= 2*(2 - 1)!

public int factorial2(int n)

程式呼叫從factorical5到factorical2,每乙個呼叫需要依賴下乙個的返回結果,程式執行順序,先得到2的階乘,返回給3的階乘,返回算出4的階乘,最終獲得5的階乘結果。

3、**示例

/**

* 遞迴計算階乘

*/public class factorial

return n * factorial(n - 1);

}public static void main(string args)

}

4、禪定時刻

遞迴演算法,是把乙個大問題轉化為乙個個同等的小問題,通過逐個解決小問題來完成最終解決大問題的思路,簡化問題。

思維的持續,乙個真的有思想,不穿格仔襯衫的程式設計師。

經典演算法系列之 選擇排序

1 前言 演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種 思維方式 演算法思維,是一種深度思考和創造的過程。演算法,只有真正理解了,而不只是所謂的知道,並將應用...

白話經典演算法系列

堆排序與快速排序,歸併排序一樣都是時間複雜度為o n logn 的幾種常見排序方法。學習堆排序前,先講解下什麼是資料結構中的二叉堆。二叉堆的定義二叉堆是完全二叉樹或者是近似完全二叉樹。二叉堆滿足二個特性 1 父結點的鍵值總是大於或等於 小於或等於 任何乙個子節點的鍵值。2 每個結點的左子樹和右子樹都...

經典演算法系列之 插入排序

1 前言 演算法,在計算機中的地位,就相當於人類大腦的決策中樞系統,哪怕最簡單的演算法,其精妙的思維方式,都可以讓人開啟一扇新的視窗。演算法,它不僅僅只是狹義的用來解決電腦科學領域的問題,更是一種 思維方式 演算法思維,是一種深度思考和創造的過程。演算法,只有真正理解了,而不只是所謂的知道,並將應用...