#algorithm #time-complexity #big-o
#алгоритм #временная сложность #big-o
Вопрос:
int i = 1;
while(i < N) {
i *= 2;
}
Поскольку мы посещаем 1,2,4,8,16…(Квадраты). Я думаю, что временная сложность big-O должна быть O (log n). Правильный ли ответ? Правильно ли то, как я пришел к решению?
Комментарии:
1. Да, рассуждения верны. Однако вам следует избегать говорить
int
, потому что тогда вы попадаете на территорию переполнения.
Ответ №1:
Да, ваш ответ правильный. Вообще говоря, если значение растет экспоненциально, оно может делать это только логарифмически много раз, прежде чем превысить некоторое фиксированное значение.