這個問題是之前考研復試老師問的一個問題,當時答得還不錯。今天刷題后記錄一下。
貪心算法:
- 基本思想:貪心算法並不從整體最優上加以考慮,它所做的選擇只是在某種意義上的局部最優解。
- 基本要素:最優子結構性質和貪心選擇性質。
動態規划:
- 基本思想:將待求解的問題分解成若干個子問題,先求解子問題,然后從這些子問題的解得到原問題的解。
- 基本要素:最優子結構性質和重疊子問題性質
貪心算法與動態規划的區別:
- 共同點:兩者都具有最優子結構性質
- 不同點:
- 動態規划算法中,每步所做的選擇往往依賴於相關子問題的解,因而只有在解出相關子問題時才能做出選擇。而貪心算法,僅在當前狀態下做出最好選擇,即局部最優選擇,然后再去解做出這個選擇后產生的相應的子問題。
- 動態規划算法通常以自底向上的方式解各子問題,而貪心算法則通常自頂向下的方式進行。