2015-10-05 3 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 вместо t и b во время цикла. Также вы должны правильно назвать массив, как int fibonacci[], а не int j[]. Этот тип кода всегда самоочевиден.

+0

@jameslarge Я не вижу никакой внутренней петли. Можете ли вы указать на это, пожалуйста? – YoungHobbit