2015-10-05 75 views
-1

我的教授试图让我了解运行时间和最坏情况,但我仍然感到困惑。他说看看for循环,看看它迭代了多少次,我猜这个代码在它下面迭代n次。我只是不太确定。它适用于斐波那契数列。我需要帮助了解运行时间和最坏情况

for (int i = 0; i < t; i++) { 
     j[i] = q; 
     int A = q; 
     q = u; 
     u = A + q; 
    } 

    for (int m = 0; m < b; m++) { 
     if (j[m] <= b) { 
      System.out.print(j[m]); 
     } 
    } 
+2

您能否提供一些关于您在理解时遇到困难的更多信息?也请给出你的变量专有名称,'j','q','A'等。很难理解。 –

回答

3

是的。代码的复杂性为O(t),因为循环运行的是t次。在内部循环中,您正在计算下一个斐波纳契数并将它们存储到数组j[]中。

接下来,您正在打印数组的内容,这也是对数组的简单迭代。

我建议你总是使用相关有意义变量名状n而不是tb而循环。您还应该正确地命名阵列,如int fibonacci[]而不是int j[]。这种类型的代码总是自我解释。

+0

@jameslarge我无法看到任何内部循环。你能指出吗? – YoungHobbit