循环内循环的运行时分析

时间:2014-10-19 10:58:03

标签: c++

如果代码中的循环内存在循环。使用函数来完成内循环的任务,真的可以减少程序运行所花费的时间吗? 而不是

for i=0 to i=upper limit {
    for j=0 to j= less than or equal to upper limit {code here} 

使用

for i=0 to i=upper limit  
    function(); (call a function which contains the innner for loop)

这有助于优化代码吗?

2 个答案:

答案 0 :(得分:1)

您无法隐藏功能中的复杂性,例如:

for x = 1 to N
    doSomethingXTimes(x)

doSomethingXTimes()取决于N这一事实意味着整个事情都是O(n2),因为您正在执行N * N(或某些与此成比例的值)步骤

答案 1 :(得分:0)

就算法复杂性而言,这不会优化您的代码。

此外,通过在外部for循环中使用函数,您将只增加代码中的函数调用次数并使其更慢。 (你可以使函数内联)