转主定理

Posted tyner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转主定理相关的知识,希望对你有一定的参考价值。

主定理

参考博客如标题

自己的傻b理解

对于我这种应付考试的人,可以直接代入几个特殊值...
只需要知道:
符号\\(O\\),读音殴,表示上界,小于等于,贴紧未知。
找好特殊值
对于简单的(如:O(n), 又如下面的例题3),自己推就行

博客原文如下

先介绍几个符号的含义。

符号\\(Θ\\),读音西塔,既是上界也是下界,等于,严格贴紧。

符号\\(O\\),读音殴,表示上界,小于等于,贴紧未知。

符号\\(o\\),读音也是殴,小于,不贴紧。

符号\\(Ω\\),读音偶眯嘎,表示下界,大于等于,贴紧未知。

符号\\(ω\\),读音也是偶眯嘎,表示下界,大于,不贴紧。

上面的“贴紧”是我根据tight翻译过来的(不是很准确啊),大概就是是否严格等于的意思吧。

意思就是\\(Θ\\)是平均时间复杂度,\\(O\\)是最坏情况下的复杂度,\\(Ω\\)是最好情况下的复杂度。

假设我们有递推关系式:
\\(T(n)=aT(n/b)+f(n)\\)

其中,\\(n\\)为问题的规模、\\(a\\)为递推下子问题的数量,\\(n/b\\)为每个子问题的规模,\\(f(n)\\)为递推后做的额外的计算工作。

1.假设存在常数?>0 ,使得\\(f(n)=O(n^logb(a)??)\\),则\\(T(n)=Θ(n^logba)\\)

具体意思是f(n)的上界是n的幂次,且\\(logb(a)\\)比这个幂次要大,则时间复杂度为这个n的\\(logb(a)\\)次。

例子:二叉树的遍历。\\(T(n)=2T(n/2)+Θ(1)\\)。其中\\(a=2,b=2f(n)=1\\),此时?=1。

\\(T(n)=Θ(n)\\)

2.假设存在常数\\(k≥0\\),使得\\(f(n)=Θ(n^logbalog^kn)\\),则\\(T(n)=Θ(n^logba log^k+1n)\\)

具体意思是f(n)是n的\\(logb(a)\\)次,再乘以一个\\(log\\),则复杂度是\\(f(n)\\)的复杂度再乘以一个\\(log\\)

例子:归并排序。\\(T(n)=2T(n2)+Θ(n)\\)。其中\\(a=2,b=2,f(n)=n\\),此时k=0。

\\(T(n)=Θ(nlog2n)\\)

例子:二分搜索(折半搜索)。\\(T(n)=T(n2)+Θ(1)\\),其中\\(a=1,b=2,f(n)=1\\),此时k=0,则

\\(T(n)=Θ(log2n)\\)

3.假设存在常数?>0,有\\(f(n)=Ω(nlogb(a)+?)\\),同时存在常数\\(c<1\\)以及充分大的n满足$ af(n/b)≤cf(n)$那么 \\(T(n)=Θ(f(n))\\)

这个感觉没啥用啊。。。

【例题】

1【NOIP2017初赛】若某算法的计算时间表示为递推关系式:

\\(T(N)=2T(N/2)+NlogN,T(1)=1\\),则该算法的时间复杂度为______________________________________________________。

A.\\(O(N)\\) B.\\(O(NlogN)\\) C.\\(O(NlogN)\\) D.\\(O(N^2)\\)

【解析】套用情况2中的\\(k=1\\)的情况,则\\(T(n)=Θ(NlogN)\\),选C

2【NOIP2016初赛】若某算法的计算时间表示为递推关系式:

\\(T(N)=2T(N4)+N??√,T(1)=1\\),则该算法的时间复杂度为______________________________________________________。

A.\\(O(N)\\) B.\\(O(√N)\\) C.\\(O(√N log2N)\\) D.\\(O(N^2)\\)?

【解析】套用情况2中的k=0的情况,则$T(n)=Θ(sqrt(N)log2 N) $,选C

3【NOIP2015初赛】某算法的计算时间表示为递推关系式:

\\(T(N)=T(N?1)+N\\) ,T(0)=1 。则该算法的时间复杂度为______________________________________________________。

A.\\(O(log22N)\\) B.\\(O(Nlog2N)\\) C.\\(O(N)\\) D.\\(O(N^2)\\)

【解析】难道这个就要用主定理了?容易推导出\\(T(N)=T(0)+1+...+n=1+N?(N+1)2\\) ,则时间复杂度为$O(N^2) $,选D

【总结】

NOIP初赛考察了3年的时间复杂度分析,其中两年用到了主定理。其实你不会主定理也没事儿,只要能找几个特殊值带入,并根据符号O的意义排除选项即可。

以上是关于转主定理的主要内容,如果未能解决你的问题,请参考以下文章

抽样定理是啥??

同余|欧拉定理|费马小定理|扩展欧拉定理|扩展欧几里得算法

初等数论四大定理欧拉定理,费马小定理

什么叫中国剩余定理

中国剩余定理-----孙子定理是啥?

riesz表示定理