基本思想:将问题分为若干个子问题,子问题之间独立,互不影响。
主定理
T(n)属于{O(n^d) when ab^d)}
T(n)=aT(n/b)+f(n) f(n)属于O(n^d)
合并排序
T(n)={O(1) n<=1;2T(n/2)+O(n) n>=1}
带入主定理:a=2,b=2;d=1;那么a=b^d;O(nlog(n))
残缺的棋盘(Tromino谜题)
右Tromino是一个棋盘上的三个1x1方块组成的L型骨牌,那么如何用Tromino覆盖一个缺少了一个方块的2^n*2^n棋盘。Tromino是右Tromino旋转的四种情况。不能有重叠。
分治法解决思想
将原先的棋盘中间加一个Tromino,缺口方向为缺少块的方向,将棋盘均分为四块,那么问题就变成了四个都缺一块的小棋盘进行填充,如此一直分下去,直到一个小棋盘为2*2为止,将剩余填充即可完成。