我有一个关于树操作的时间复杂度问题。
据说(《数据结构与算法》Horowitz等人)在二叉搜索树中,插入、删除、查找、查找最小值-最大值、后继和前驱节点的时间复杂度为
O(h)
,而AVL树的时间复杂度为O(logn)
。
我不太理解其中的区别。考虑到h=[logn]+1
,那么为什么我们要用O(h)
或者其他地方用O(logn)
?