如果算法在返回答案之前迭代了两次数字列表,那么运行时是O(2n)还是O(n)?算法的运行时间是否总是缺少系数?
答案 0 :(得分:0)
它可能仍然比没有迭代两次的实现慢,但仍然是O(n)
,因为时间复杂度仅根据n
的大小进行扩展。
答案 1 :(得分:0)
惯例是在报告Big-O时间时忽略常量系数。
例如,如果算法为O(n), O(2n), or O(3n)
,则会报告O(n)
。
答案 2 :(得分:0)
Big-O表示法指的是渐近"最坏情况"算法的复杂性。任何常数都是分析中的因素。因此,从理论角度来看,O(2n)应始终表示为O(n)。但是,从实际实施的角度来看,如果你可以在数字列表上减少一次迭代,你会看到一些(小)的性能提升。
答案 3 :(得分:0)
你的怀疑是正确的。你省去了系数。请参阅http://en.wikipedia.org/wiki/Big_O_notation。
从示例中
现在可以应用第二条规则:$ 6x ^ 4 $是6和$ x ^ 4 $的乘积 其中第一个因素不依赖于x。省略这个因素 结果以简化形式$ x ^ 4 $。