算法分析题
-
求下列函数的渐进表达式
找趋于无穷时最大项即可,忽略系数
-
论O(1)与O(2)的区别
根据符号定义可得O(1)=O(2)。用O(1)或O(2)表示同一个函数时,差别仅在于其中的常数因子
-
按照渐进阶从低阶到高阶排序
过程同题1
-
- 建立等式,设新机器在t时间内能解决m规模的问题 ,则 3 ∗ 2 n = ( 3 ∗ 2 m ) / 64 3*2^n = (3*2^{m})/64 3∗2n=(3∗2m)/64 解得m=n+6
- 即 m 2 = 64 ∗ n 2 m^2 = 64*n^2 m2=64∗n2 有m = 8n
- 由于T(n)=常数,因此算法时间复杂度与数据规模无关,因此可解任意规模的问题
-
Θ,既是上界也是下界(tight),等于的意思。(放缩夹逼出来的结果)
Ο,表示上界(tightness unknown),小于等于的意思。
Ω,表示下界(tightness unknown),大于等于的意思。
Ο是渐进上界,Ω是渐进下界。Θ需同时满足大Ο和Ω,故称为确界(必须同时符合上界和下界)。Ο极其有用,因为它表示了最差性能。也就是这个设计出来的算法最差能到什么地步
-
使用斯特林公式转换
- 参考题5