2015-10-05 38 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