分治法不是一種特特定的算法,是一種算法思想。人們在遇到一些直接解決難以解決的大問題時,會將其分解爲多個規模較小的子問題,各個解決,分而治之。
能用到分治法的題目需要符合兩個特徵:
1. 有重複子問題
即可將一個問題分爲兩個相同的子問題。
比如二分法。
2. 獨立子問題
每個子問題之間相互獨立互不干擾。 (動態規劃是子問題相互聯繫)
分治法三步驟:
1. 分解 : 將問題分解爲獨立的子問題
2. 解決: 遞歸解決問題
3. 合併: 把子問題的結果合併爲原問題的解。
分治法不是一種特特定的算法,是一種算法思想。人們在遇到一些直接解決難以解決的大問題時,會將其分解爲多個規模較小的子問題,各個解決,分而治之。
能用到分治法的題目需要符合兩個特徵:
1. 有重複子問題
即可將一個問題分爲兩個相同的子問題。
比如二分法。
2. 獨立子問題
每個子問題之間相互獨立互不干擾。 (動態規劃是子問題相互聯繫)
分治法三步驟:
1. 分解 : 將問題分解爲獨立的子問題
2. 解決: 遞歸解決問題
3. 合併: 把子問題的結果合併爲原問題的解。