我有一个家庭作业问题:
如果输入大小为 100 的算法需要 0.5 毫秒,那么输入 500、1,000 和 10,000 需要多长时间:
- 线性,
- O(N log N),
- 二次方,
- 立方体,
- 指数的。
我了解这里的基本概念,我只是不确定如何从数学上解决这个问题。我很想简单地计算处理每个输入项所需的时间(例如,在 a 中)我将 0.5 除以 100 得到 0.05,然后乘以 500、1000和 1000 找出处理这些大小的输入需要多长时间。
虽然这对于线性计算很简单,对于二次和三次计算也很简单,但我不太明白如何将此策略应用于 (N log N) 或指数函数:我使用什么值作为基础指数?
对于(N log N),是不是像计算c = 100 * log(100) = 200一样简单;然后计算 c = 500 * log(500) = 1349,即 6.745 乘以 200,然后将 6.745 乘以 0.5 得到 3.3725 作为最终答案?