具有多次迭代的for循环与具有较少迭代的循环

时间:2014-06-09 03:11:14

标签: for-loop iteration big-o

假设我们有循环(a)将有100次迭代,而循环(b)将有50次迭代。

哪个效率更高?

我认为(b)更有效,因为它的迭代次数较少,但(a)和(b)的大 - o都是 n

我是否过度思考这个并滥用大o的概念?

2 个答案:

答案 0 :(得分:0)

要了解更多有关迭代次数更少的意义,请阅读有关循环展开(或循环展开)的内容。

答案 1 :(得分:0)

Big O告诉函数增长率的上限。这只是一个估计。

在您的情况下,两个循环(或实际上具有不同迭代次数的相同循环)具有相同的时间复杂度“O(n)”。即,循环的性能与输入的数量成正比。 (绘制线性时间与输入图表)

  • 对于特定情况(最差/最佳/平均)具有相同复杂度的两个不同函数/算法仅意味着它们对于该情况具有相同的“增长率”而不是它们在实际运行中将执行完全相同。

因此在实际测量中,具有50(n = 50)次迭代的相同循环将比具有100次(n = 100)次迭代的循环花费更少的时间。

可能是您不理解其功能/算法的增长率/性能估计的理论机制。