#c #time-complexity
#c #временная сложность
Вопрос:
почему в первом коде временная сложность равна O (1), а во втором коде равна O (n):
//first code:
int i = 0;
while(i < 11)
{
i=i 1;
}
//second code:
int i =0;
while(i < n)
{
i = i 1;
}
во втором коде n — это размер.
Комментарии:
1. Потому что первый код не зависит ни от какого размера входных данных.
2. Я уверен, вы бы согласились, что второй — O (n), а первый — O (11). Возможно, вы не знаете, что O (11) равно O (1). См. обозначение Big O .
3. @freakish да, я новичок в структуре данных, спасибо, братан
Ответ №1:
почему в первом коде временная сложность равна O (1)
Потому что он выполняет постоянное количество операций.
и второй код — O (n)
Потому что он выполняет ряд операций, которые линейно возрастают по отношению к n.
Ответ №2:
В первом коде цикл while всегда будет выполняться до тех пор, пока i не достигнет 11, поэтому сложность времени равна O (1).
Во втором коде время выполнения цикла зависит от значения n, поэтому, если вы задаете 11 для n, он будет выполняться до тех пор, пока i не достигнет 11, но если вы задаете 111, он будет выполняться до тех пор, пока i не достигнет 111, что увеличивает временную сложность кода в O (N) раз.