2013-11-10 2 views
1

В this implementation of a splay tree указанная временная сложность функции makeEmpty() (которая удаляет все элементы) равна O (n). Это осуществляется следующим образом:Сложность времени makeEmpty() дерева splay сверху вниз

while(!isEmpty()) 
{ 
    findMax();  // Splay max item to root 
    remove(root->element); 
} 

Учитывая, что оба findMax и remove могут иметь временную сложность пропорциональную высоты дерева, почему это будет принять O (п) в худшем случае?

Спасибо!

ответ

3

Три слова: Теорема последовательного доступа.

http://www.wseas.us/e-library/conferences/cairns2001/papers/632.pdf

Поскольку выше цикл многократно удаляет максимальное значение, оно эффективно посещает все элементы в последовательности, и поэтому я почти уверен, применяется теорема последовательного доступа.