主定理

在算法分析中,主定理(英语:master theorem)提供了用渐近符号(大O符号)表示许多由分治法得到的递推关系式的方法。这种方法最初由Jon Bentlery(英语:Jon Bentley (computer scientist)),Dorothea Haken(英语:Dorothea Haken)和James B. Saxe(英语:James B. Saxe)在1980年提出,在那里被描述为解决这种递推的“天下无敌法”(master method)。此方法经由经典算法教科书Cormen(英语:Thomas H. Cormen),Leiserson(英语:Charles E. Leiserson),Rivest(英语:Ron Rivest)和Stein的《算法导论》 (introduction to algorithm) 推广而为人熟知。

不过,并非所有递推关系式都可应用支配理论。该定理的推广形式包括Akra-Bazzi定理。

支配理论

假设有递归关系式

 ,其中  

其中, 为问题规模, 为递归的子问题数量, 为每个子问题的规模(假设每个子问题的规模基本一样), 为递归以外进行的计算工作。

情形一

如果存在常数 ,有

 (可不严谨的视作多项式地小于)

则

 

情形二

如果存在常数 ,有

 

则

 

情形三

如果存在常数 ,有

 (多项式地大于)

同时存在常数 以及充分大的 ,满足

 

则

 

常用算法中的应用

算法 递回关系式 运算时间 备注
二分搜索算法     情形二( )
二叉树遍历     情形一
最佳排序矩阵搜索(已排好序的二维矩阵)    
归并排序   情形二( )

参考文献