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