问题规模= 1百万
算法运行时间= N ^ 2
每秒操作= 10 ^ 9
我的算法书中的表格表示需要“小时”才能完成,但我认为根据这些信息需要“分钟”。我的思考过程是......
(1百万)^ 2 /(10 ^ 9)= 1000秒,不到一小时。我哪里做错了?谢谢。
答案 0 :(得分:0)
您提到的表格很可能只是以秒/小时/天/年的粒度进行粗略估算。这样一个表的目的可能只是传达一种关于O(N ^ 2)实际意味着什么的感觉:用O(N ^ 2)算法对具有10000000个条目的电话簿进行排序?不是个好主意。
这一点得到了以下事实的肯定:当以O符号给出时,渐近运行时间省略了任何常数因子。因此,O(N ^ 2)中的算法可能实际上执行,例如, 7.2 * N ^ 2操作以完成其任务。那里有7200秒 - 即2 小时。