2014-08-07 3 views
1

Может ли кто-нибудь научить меня, как рассчитать сложность времени, когда у вас есть полином как условие в вашем цикле for? например.Большая сложность O/Time с экспоненциальным условием

for(i = 1; i < n^4; i = n * i){ 
... 
} 
+0

Попробуйте следовать алгоритму в листе бумаги, и вы узнаете, как рассчитать временную сложность вашего алгоритма –

+1

Я думаю, что он квалифицируется как полиномиальный, а не экспоненциальный – Mehrdad

+1

Даже лучше этого; он постоянный. – Mshnik

ответ

5

Поскольку i умножается на n на каждой итерации, было бы 4 итераций, и предполагая, что каждая итерация делает постоянное количество работы, временная сложность будет O(1).

На первой итерации i = 1.
На второй итерации i = n.
На третьей итерации i = n^2.
В четвертой итерации i = n^3.
Затем я достигает n^4, и мы выходим из цикла.

+0

поэтому, ссылаясь на этот вопрос, относительно экспоненциального условия, где x^n, n = число итераций? – 12341234

+0

@ 12341234 проверить, как переменная 'i' увеличивается на итерацию. Это поможет вам определить формулу для вычисления временной сложности O. –

+0

@ 12341234 Нет, число итераций не является функцией n. Вот почему он постоянный - O (1). – Eran

0

На основе этого document (последний слайд):

enter image description here

Следовательно, Т (п) О (1).

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