写作目的:
本博客的目的是认识和复习数据结构中的平衡二叉树和红黑树,以及由红黑树实现的TreeSet和TreeMap
1.二叉搜索树的弊端
二叉搜索树的查找,插入,删除的复杂度等于树的高度,时间复杂度是O(log(n)).但是,对于同一组数据,插入顺序的不同,可能会导致二叉搜索树的高度不同。如果是有序插入,二叉搜索树退化成链表,其查找的时间复杂度退化为O(n).
图 插入顺序不同对二叉搜索树的影响
2.平衡二叉树(AVL树)
[维基百科]:在计算机科学中,AVL树是最先发明的自平衡二叉查找树。在AVL树中任何节点的两个子树的高度最大差别为一,所以它也被称为高度平衡树。查找、插入和删除在平均和最坏情况下都是O(log n)。增加和删除可能需要通过一次或多次