2016-06-25 3 views

ответ

0

Нет. Подумайте об этом так: каждый шеф-повар вталкивается в стек не более одного раза, и его также вытаскивают не более одного раза. Поскольку вы только просматриваете список один раз, количество операций стека ограничено 2N, то есть сложностью времени = O (N).

+0

псевдокод для того же: для (INT I = 0; <п; я ++) { толчок (повар [I]); while (вверху> вверху-1) { pop (вверху); // в худшем случае цикл работает n-1 раз } } так что бы не эта сумма до n^2 ?? – user23501

+0

@ user23501, так как наихудший случай - это количество элементов в стеке, оно уменьшается на количество операций 'pop' каждого цикла, поэтому, если у вас действительно очень плохой случай на раннем этапе, вы можете получить только небольшие. Количество операций 'pop' никогда не будет превышать O (N) –

+0

О, получилось, очень полезно. – user23501

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