分治法能解決的問題一般具有以下特徵:
1,該問題的規模縮小到一定的程度就可以容易地解決;
2,該問題可以分解爲若干個規模大小的相同問題,即該問題具有“最有子結構性質”;
3,利用該問題分解出的子問題的解可以合併爲該問題的解;
4,該問題所分解初的各個子問題是相互獨立的,即子問題之間不包含公共的子問題;
上述的第一條特徵是絕大多數問題都可以滿足的,因爲問題的計算複雜性一般是隨着問題規模的增加而增加;
第二條特徵是應用分治法的前提,它也是大多數問題可以滿足的,此特徵反應了“遞歸思想”的應用;
第三條特徵是關鍵,能否利用分治法完全取決於問題是否具有第三條特徵。如果具備了第一條和第二條特徵,而不具備第三條特徵,則可以考慮貪心法或者動態規劃法。
第四條特徵涉及到分治法的效率,如果各子問題是不獨立的,則分治法要做許多不必要的工作,重複地解公共的子問題,此時雖然可以用分治法,但一般動態規劃法較好。
http://218.22.18.86/info/Data_Structures_and_Algorithms/algorithm/technique/divide_and_conquer/chapter2.htm