2013-09-15 3 views
-1
For (int i=1; i <=n;i/=2){ 
    System.out.println(i); 
} 

За временную сложность вышеуказанного кодирования является ot log (n)?как рассчитать сложность времени для следующего кода?

Спасибо!

+5

'я/= 2'? У вас бесконечный цикл, если 'n' отрицательный. – kiheru

+0

Hi, kiheru. Значит, у вас проблема? Но это в прошлом году. Я не понимаю, как анализировать, чтобы вычислить временную сложность. – hjxlpp

+0

У этого может возникнуть проблема или нет. @ sasha.sochka дал вам более полный ответ (я пропустил случай 'n == 0'). После первой итерации (если все делается) 'i == 0', потому что целое деление' 1/2 == 0'. – kiheru

ответ

1
  • Если n > 0: Это сложность времени O(∞), поскольку цикл никогда не закончится

  • Если n <= 0: Это сложность времени O(1) , поскольку цикл не будет выполнен

Смежные вопросы