主定理

「主定理」

不问归期 提交于 2019-12-09 20:03:08
    假设现在你一个程序,共循环n次,第一次所用时间为1,     第i次循环所用时间是前一次的x倍      为了好算 假定x<1,那么可以猜到这个时间是收敛的     $T=\sum\limits_{i=0}^n x^i$     根据等比数列球和公式     $T=\frac{1-x^n}{1-x}$     当n趋于$\infty$时,     $T=\frac{1}{1-x}$          根据常识这个值在$x<0.9$时和$1$没什么区别     而且$n$根本不用到$\infty$而是很快就收敛到那个地方     例如$x=0.5$时$5$次就收敛到了$1.96(2)$     $x=0.7$时$10$次$3.26(3.33)$     即使$x=0.99$也在$500$次是就到了$99.34(100)$          所以在有限次递归的程序里,     近似可以看成整个程序的复杂度就是     第一次循环的复杂度与一个常数相乘     (哪怕$x$开到$0.99$这个常数才到$100$)     反过来,如果每一次循环都是前一次的$x$倍$(x>1)$     近似可以看成最后一层的复杂度与一个常数相乘,     有了这个认识可以来看主定理     现有一个递归问题,每个大小为n的节点需要$n^d$的复杂度     然后分裂成$a$个大小为$n/b

【转】主定理

与世无争的帅哥 提交于 2019-11-30 06:28:14
主定理 参考博客如标题 自己的傻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

分治法的基本思想

拟墨画扇 提交于 2019-11-26 12:09:18
分治法得基本思想是将一个规模为n的问题分解为k个规模为m的相互独立且与原问题解法相同的子问题,然后将子问题的解合并得到原问题的解。 由此可见,分治法设计出的程序一般是递归算法,设解决一个规模为1的问题需要1个单位时间,再设将k个子问题的解合并为原问题的解所需时间为f(n),则递归算法的时间复杂度为: 解递归方程: , 主定理: 当 时,T(n)=O( ); 当 时,T(n)=O ; (此处logn底数为2) 当 时,T(n)=O(f(n)); 来源: CSDN 作者: FRANKENSTEIN0 链接: https://blog.csdn.net/qq_41678225/article/details/100707762