Примитивная операция по алгоритму - PullRequest
0 голосов
/ 03 ноября 2019

Я делаю анализ алгоритма и застрял на for and while loop

Предположим, у нас есть цикл for с

for (int i=0; i<n; i++)  

, поэтому присвоение i = 0 = 1

i < n = n+1 (он будет запущен n раз, и последняя проверка, в которой цикл будет ложным, будет n + 1)

здесь путаница

i++ -> i ++ будеттакже запускается n раз, но выполняет две разные работы: приращение и присваивание. Это будет 2n или просто n?

То же самое в цикле while

while (i<n): Будет 2n?

Я работаю на Big O.

Спасибо

1 Ответ

0 голосов
/ 03 ноября 2019

Обычно одно назначение эквивалентно одной операции или «шагу». Это потому, что обычно асимптотическое время выполнения алгоритма измеряется с использованием нотации big-O , где константы не имеют значения.

Я бы обычно считал i++ как одну операцию,Итак, чтобы ответить на ваш вопрос, предполагая, что все эти циклы делают инкремент i, время выполнения будет O(n). Однако, даже если вы посчитаете это как два, время выполнения все равно будет O(n).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...