平衡二叉查找是解决普通二叉查找树在频繁的插入、删除等动态更新的情况下,出现时间复杂度退化的问题。
红黑树是一颗平衡二叉查找树(高度差不能大于1),通过旋转和染色满足平衡性质:
- 每个节点非黑即红
- 根节点是黑色
- 叶子节点黑色(NIL),叶子节点不存储数据
- 红色节点2个子节点为黑色
- 每个节点的节点到达其叶子节点黑色节点数相等
红黑树的高度分析
首先把红色节点都去掉,二叉树变成了四叉树。
红黑树种黑色节点的路径不会超过log2n,加入红色节点,最长路径不会超过2long2n,也就是说红黑树的高度近似2lon2n。
AVL每次插入、删除都要做调整,比较复杂、耗时,频繁插入、删除操作,代价就会很高。红黑树只做到了近似平衡,所以维护成本要比AVL低。