为什么要使用树以及使用什么树

 
(1)为什么要使用树:
   因为如果使用线性表进行操作,那么搜索的时间复杂度是O(n)规模的。而如果使用树这个数据集的话,能够把时间复杂度的规模降低到O(logn)规模。
 
(2)为什么使用二叉查找树:
  构建二叉查找树,能够限制节点的左子树中的值都比当前节点的小,右子树的都比当前节点的大。这样子更有利于进行搜索,有利于进行二分查找。
 
(3)为什么使用平衡二叉树:
  如果是非平衡二叉树,那么在构建树的过程中可能会出现一种情况,那就是树变成单支二叉树,也就是变成了链表的结构,此时搜索的时间复杂度又会变成O(n)规模。因此提出了使用平衡二叉树。控制左右子树的高度差不能超过1.此时就能够保证不会出现单支二叉树的情况。一般是构建AVL树。而且AVL树具有自平衡特性,因此保证其在失去平衡之后,可以自动调整回来,能够严格保证是一棵平衡二叉树。
 
(4)为什么使用红黑树:
  AVL树确实挺好的。但是AVL树追求严格的平衡,因此在添加或者删除节点时,一定程度上会增加操作次数。而在红黑树中,只是追求相对平衡,因此在一定程序上能够提高效率。这就红黑树比较好的一点。适用于内存中。
 
(5)为什么使用B树:
  B树的一个特点就是它是一种多分支树。这种树的中的每个节点可以存储多个内节点,通过这样子,可以大大降低树的高度。因此也可以大大提高树的搜索速度。因为对于树来说,其时间复杂度是与树的高度有关的。而且是成正比。正是因为它的这种特性,所以它的搜索效率挺高的。但是一般应用于外存中,好像是因为它的空间复杂度比较大,需要用到比较多的存储空间,所以比较适用于外存。

转载于:https://www.cnblogs.com/axing-articles/p/11482525.html

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值