摘要:
二叉查找树(Binary Search Tree)在很多情况下可以良好的工作,但它的限制是最坏情况下的渐进运行时间为 O(n)。平衡查找树(Balanced Search Tree)的设计则是保证其高度在最坏的情况下为 O(log n),其插入、删除和查找可以实现渐进运行时间 O(log n)。本文将介绍 2-3-4 树和 2-3 树的定义及基本操作。 阅读全文
摘要:
BST 算法查找时间依赖于树的拓扑结构,最佳情况是 O(log2n),而最坏情况是 O(n)。所以实际上我们真正面对的问题是如何保证 BST 的拓扑结构始终保持树高度与节点数量的最佳比例。一种方案就是在不试图让数据源决定数据顺序的情况下,新的节点插入后仍然可以保持 BST 树的平衡。这种能够始终维持树平衡状态的数据结构称为自平衡二叉查找树(self-balancing binary search tree)。本文中我们将主要介绍其中的两种:AVL 树和红黑树。 阅读全文