平衡树是二叉搜索树和堆合并构成的数据结构,它满足以下性质:
- 空树是平衡树;
- 非空平衡树左右两个子树高度的绝对差不超过 1 1 1;
- 非空平衡树左右子树均为平衡树
对一棵二叉搜索树进行查询/新增/删除等操作,所花的时间与树的高度 h h h成比例,如果二叉搜索树退化为链,那么 h = n h = n h=n,此时时间复杂度最差。因此让树尽可能的维持矮平的状态有利于提高算法的时间复杂度。
如果能够将树结构的高度维持在 log n \log n logn的状态下,则时间复杂度最优,此时的二叉搜索树我们成为平衡二叉搜索树(Balanced Search Tree)。
二、分类- Treap
- Splay
- WBLT
- Size Balanced Tree
- AVL Tree
- 红黑树
- 伸展树
由于各个知识点占用篇幅较大,具体各部分内容单独形成博客,不合并在本篇博客讲述。