红黑树最坏复杂度_红黑树查找时间复杂度

红黑树最坏复杂度_红黑树查找时间复杂度汇总:二叉查找树=平衡二叉树(AVL)=红黑树偶然机会需要实验一下红黑树算法。(第一感觉就是扑克里面的红桃黑桃)(oo)本文旨在溯源红黑树。二叉查找树=>平衡二叉树(AVL)=>红黑树(参考了一些网络博客)已挂链接二叉查找树==>文章参考 前两部分图片大部分源自这里大

汇总:二叉查找树=>平衡二叉树(AVL)=>红黑树   偶然机会需要实验一下红黑树算法。(第一感觉就是扑克里面的红桃黑桃)(o–o)   本文旨在溯源红黑树。二叉查找树=>平衡二叉树(AVL)=>红黑树   (参考了一些网络博客)已挂链接   二叉查找树   ==>文章参考 前两部分图片大部分源自这里   大家应该熟悉二叉树。(一个节点最多只有两个孩子的树)   还有熟悉的二分查找,能够提升查找的时间复杂度 O(n) 变为 O(logn)。那么二叉查找树就结合两者并使得二分查找更加结构化。如图:
红黑树最坏复杂度_红黑树查找时间复杂度
红黑树最坏复杂度_红黑树查找时间复杂度   图片很直观多的话不说,自己悟。(左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大)   但是终究还是缺点很多如:(某些极端条件下)
红黑树最坏复杂度_红黑树查找时间复杂度
红黑树最坏复杂度_红黑树查找时间复杂度   如果是这样一组数字组成的二叉查找树,那么问题很大。(变成了一条线->链表)   这样查与:查找一个数字在一个数组中。有任何区别吗?   当然没区别。。。所以问题就来了。尤其是时间复杂度又回到原来的 O(n) 。(就很惨)   平衡二叉树(AVL)   于是就有了平衡二叉树(AVL)。目的当然是为了解决上述问题   (不要以为偶然情况下才会发生上述问题,不管也罢。但是在一个巨大数据量中,O(logn)与O(n)时间相差很恐怖的)   平衡二叉树的特点:   1、具有二叉查找树的全部特性。   2、每个节点的左子树和右子树的高度差至多等于1。
红黑树最坏复杂度_红黑树查找时间复杂度
红黑树最坏复杂度_红黑树查找时间复杂度图一是,图二不是   性质一,可以顾名思义,有些水。   性质二,很重要。这是为什么要在前面加一个平衡的原因。防止了左右子树有一方太长了的问题。看一下图自己悟。(图一根节点左右子树长度为1和0,满足相差小于等于一的条件。图二为2和0则不满足 || 理解为2,0和3,1同理)。   正因为这样的性质,所以直接解决了上述二叉查找树的问题。   但是,又产生了新的问题。我们如何:在每次新添加一个节点的时候都能保证形成这样的树。   那就是它的核心算法,左旋,右旋啥的。而且这个我不保证能给你讲明白。于是我就挂个链接(附代码):   【漫画】以后在有面试官问你AVL树,你就把这篇文章扔给他。 (sigusoft.com)<==反正我是悟到了。   ok,如你懂了也罢,没看懂也罢。我们不得不承认它的开创性与复杂性。   红黑树   千呼万唤,红黑树来了。就是因为上述算法太复杂,而且耗时(主要是耗时,因为红黑树可能更复杂)   首先还是先把定义摘出来   性质1. 结点是红色或黑色。   性质2. 根结点是黑色。   性质3. 所有叶子都是黑色。(叶子是NIL结点)   性质4. 每个红色结点的两个子结点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色结点)   性质5. 从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。   图片如图(来自网络)
红黑树最坏复杂度_红黑树查找时间复杂度
红黑树最坏复杂度_红黑树查找时间复杂度   在我看来,前几条性质也是水的。   最重要是最后一条,从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点。   也就是说。从任意节点往下走无论走哪一条路,到达叶子节点,所经过黑色节点的个数相等(又复述了一遍,还是要自己悟道)。可以看图证实。   这些约束强制了红黑树的关键性质: 从根到叶子的最长的可能路径不多于最短的可能路径的两倍长。结果是这个树大致上是平衡的。因为操作比如插入、删除和查找某个值的最坏情况时间都要求与树的高度成比例,这个在高度上的理论上限允许红黑树在最坏情况下都是高效的,而不同于普通的二叉查找树。   是性质4导致路径上不能有两个连续的红色结点确保了这个结果。最短的可能路径都是黑色结点,最长的可能路径有交替的红色和黑色结点。因为根据性质5所有最长的路径都有相同数目的黑色结点,这就表明了没有路径能多于任何其他路径的两倍长。   摘自=>百度百科   我说人话就是,这样做导致没有路径能多于任何其他路径的两倍长。 从而使得这棵树大体上能保持平衡(即高度不会差距太大)   也就是说:红黑树没有完全更改上述算法,但也没追求太完美。   红黑树的逻辑(正题)   前面都是一些汤汤水水,后面才是逻辑+代码。(简单实现)   目前没有时间进行论述,但挂出来了一个看到的还算是通俗易懂的解析,挂了出来   彻底搞懂红黑树 – 知乎 (zhihu.com)   PS:后续会详解这个红黑树,本文旨在溯源红黑树。二叉查找树=>平衡二叉树(AVL)=>红黑树。   参考文章已经算是很好理解了。   已经有了==>红黑树详解 – 知乎 (zhihu.com)

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/20636.html

(0)
上一篇 2024年 9月 15日 下午4:42
下一篇 2024年 9月 15日

相关推荐

关注微信