算法的运行时间是否可以为O(2n)?

时间:2014-09-22 17:43:15

标签: big-o

如果算法在返回答案之前迭代了两次数字列表,那么运行时是O(2n)还是O(n)?算法的运行时间是否总是缺少系数?

4 个答案:

答案 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 $。