平衡二叉排序树(AVL树)

2019-01-20  本文已影响0人  Aaron_Swartz

关于平衡二叉树了解的还是太少,遂记录如下。

二叉搜索树,是因为这种二叉树能大幅度提高搜索效率。如果一个二叉树满足:对于任意一个节点,其值不小于左子树的任何节点,且不大于右子树的任何节点(反之亦可),则为二叉搜索树。BST如果按照中序排序的话是一个有序序列。BST的平均查找时间复杂度为O(logn),但是极端情况下,假如一开始建树的时候是有序序列,那么查找时间复杂度可以到O(n), 构建树的时间复杂度为O(nlogn),为了解决这一问题,引人AVL tree。从此我们的主人公开始登场。

由于AVL tree要求左右子树的高度差不大于1,因此这就保证了在建树时不会出现树退化为链表的情形。查找的时间复杂度可以保证为O(logn), 建树时间复杂度依然为O(nlogn)。

参考:
1 看图说话之平衡二叉排序树(AVL树)

上一篇下一篇

猜你喜欢

热点阅读