运行时分析单个for循环,i不递增1

时间:2015-04-17 18:45:34

标签: c++ runtime

double sum_skip7 (double array[], int n)  
    //n: size of the array. Assume n is divisible by 7    
{  
    double sum = 0;  
    for(int i=0; i< n; i=i+7)  
        sum = sum + array[i];  

    return sum;
}

我理解如果for循环要将i递增1,则运行for循环语句所需的次数为n+1i = 0, 1,2,... n)。但是,由于i增加7,它仍然是n+1次?或者是(n-7)+1次?第二个答案似乎更有意义,但我不愿意赌它。

2 个答案:

答案 0 :(得分:2)

不,它是n / 7,因为我每次增加7。

答案 1 :(得分:0)

因为我每次上升7,我们可以看到循环将运行n / 7次。由于运行时我们忽略了常量,因此它具有O(n)的运行时间。