C++ 自顶向下splay树的makeEmpty()的时间复杂性
在中,列出的C++ 自顶向下splay树的makeEmpty()的时间复杂性,c++,data-structures,big-o,time-complexity,splay-tree,C++,Data Structures,Big O,Time Complexity,Splay Tree,在中,列出的makeEmpty()函数(删除所有元素)的时间复杂度为O(n)。其实施情况如下: while( !isEmpty( ) ) { findMax( ); // Splay max item to root remove( root->element ); } 考虑到findMax和remove的时间复杂度可能与树的高度成正比,为什么在最坏的情况下需要O(n)个时间 谢谢 三个字:顺序存取定理 因为上面的循环反复移除最大值,它有效地访问
makeEmpty()
函数(删除所有元素)的时间复杂度为O(n)。其实施情况如下:
while( !isEmpty( ) )
{
findMax( ); // Splay max item to root
remove( root->element );
}
考虑到findMax
和remove
的时间复杂度可能与树的高度成正比,为什么在最坏的情况下需要O(n)个时间
谢谢 三个字:顺序存取定理 因为上面的循环反复移除最大值,它有效地访问了序列中的所有元素,所以我非常确定序列访问定理适用