平衡二叉排序树 – 数据结构和算法76

平衡二叉排序树

让编程改变世界

Change the world by program

平衡二叉排序树

不知道各位小伙伴们回家有没有去自己打打代码,如果你认真研究了,你肯定会发现,这二叉排序树的效率还真得碰运气噢,大家一起来分析以下两种情况:

如果序列是像[5, 9, 7, 6, 3, 4, 1, 8, 2]这样的组合,那么化成二叉树是酱紫:

宽客网,量化投资,宽客俱乐部

如果我们想查找结点9,只需要两次比较就可以找到噢。

如果序列是像[1, 2, 3, 4, 5, 6, 7, 8, 9]这样从小到大有序的组合,那么Ta得到的将是一个极端的右斜树:

宽客网,量化投资,宽客俱乐部

平衡二叉排序树

不过要注意,Ta依然满足二叉排序树的条件,如果想要查找到结点9,则需要9次比较才可以得到结果。

所以我们发现了,同样的序列,排序不同的话,生成的二叉排序树查找效率差别很大,而序列本身的顺序对于二叉排序树的生成又是没有很大的关系,所以我们需要找到一个合适的方法,使得用户提供任何一个组合的序列,都排成查找效率尽量高的二叉排序树。

有没有办法解救呢?答案是肯定有的,我们学习《数据结构和算法》这个系列的教程就是不断发现已知的不足然后再不断去提升。

如果我们希望对一个序列按照二叉排序树进行查找,最好就是把它构建成一棵平衡的二叉排序树(AVL树)。

…… 省略,具体请看视频讲解 ……

视频下载

备用视频下载
技术, IT技术, 数据结构和算法, 排序


风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部