输入大小为 100 的算法需要 0.5 ms 秒,如果输入大小为 500 且程序为 O(n lg(n)),则运行需要多长时间?
我的书说,当输入大小加倍时,n lg(n) 需要“略多于两倍的时间”。这对我帮助不大。
我一直这样做的方式是求解常数乘数(这本书没有谈到,所以我不知道它是否有效):
.5ms = c * 100 * lg(100) => c = .000753
所以
.000753 * 500 * lg(500) = 3.37562ms
这是计算运行时间的有效方法吗,有没有更好的方法来计算它?