【发布时间】:2021-09-24 02:16:22
【问题描述】:
【问题讨论】:
-
你给出这些数字没有任何解释,我们无法检查你的工作。而且常数 c 只出现在最里面的指令中看起来很奇怪。
-
“multiply loops together”不是获得准确界限的有效方法,尽管它通常在简单的情况下有效,这就是为什么你看到很多人使用它的原因。 Yves 的回答提供了一个有效的方法。
【问题讨论】:
内层循环(while)被执行O(Log(i))次,因为j,初始化为i,被减半的次数越多越好,循环体占用的时间是恒定的。
由于在[0,n) 范围内为i 执行此循环,因此总运行时间为O(ΣLog(i)) = O(Log(n!)) = O(n Log(n))。 (在i上从0到n-1求和,最终表达式取自斯特林公式。
没有必要详细说明所有说明。
【讨论】: