天天看點

Divide Conquer Combine

分治法的基本思想是将将一個問題分解成若幹個規模更小的子問題,然後依據子問題的解得到原問題的解

這個需要遞歸解決問題,遞歸解決的子問題一定要與原問題的結構形式保持一直,如果不能一緻,需要變成一緻

遞歸函數傳遞的參數不能是常數

歸并算法和快排都是分治

兩個n位數的乘積也能分治,将兩個n位數從中間分開,高位即有一個權重

這樣兩個數分解成4個n/2位的數,如果分開相乘則變成了四個子問題,由主定理可知時間複雜度仍然是n的平方

我們要減少子問題的數目,才能減小時間複雜度

這裡有個國小的數學問題

x=x02^k+x1

y=y02^k+y1

xy=x1y1+x0y022k+2k(x1y0+x0y1)

x0y1+x1y0=(x1+x0)(y1+y0)-x1y1-x0y0

(x1+x0)*(y1+y0)是沒有含義的

Divide Conquer Combine
Divide Conquer Combine
Divide Conquer Combine

繼續閱讀