差異:
第壹,角色不同
1,貪婪算法:將子問題的局部最優解合成原解問題的壹個解。
2.遞歸算法:用遞歸算法解決問題。比如河內問題;數據的結構是遞歸定義的。如二叉樹、廣義表等。
3.動態規劃:動態規劃算法通常用於解決具有某些最優性質的問題。
4.分而治之算法:我們可以把它們分成幾個更小的子問題,以此類推,直到直接找到解。
第二,方法不同
1,貪婪算法:解決問題時,總是做出目前最好的選擇。也就是說,算法在不考慮全局優化的情況下,得到了某種意義上的局部最優解。
2.遞歸算法:通過將問題反復分解成同類子問題來解決問題。
3.動態規劃:將流程分為幾個相互關聯的階段,每個階段都需要做出決策,使整個流程達到最佳的活動效果。
4.分治算法:規模為N的問題被分解成k個更小的子問題。
第三,特點不同
1,貪心算法:根據問題的意思選擇壹個度量。
2.遞歸算法:遞歸就是在過程或函數中調用自己。
3.動態規劃:雖然動態規劃主要用於解決有時間劃分的動態過程的優化問題,但壹些與時間無關的靜態規劃(如線性規劃、非線性規劃),只要人為地引入時間因素,將其視為多階段決策過程,就可以很容易地用動態規劃方法求解。
4.分而治之算法:可以將原問題分解成多個子問題;在原問題的分解過程中,子問題遞歸求解;在解決並得到每個子問題的解之後。