美文网首页
2018-04-01 二叉排序树,平衡二叉树

2018-04-01 二叉排序树,平衡二叉树

作者: Ceilen | 来源:发表于2018-04-03 09:13 被阅读0次

插入和删除  -----  查找  是一对矛盾体。  对于无序数据结构,插入和删除的效率高,查找的效率可能就低。为了平衡插入和删除以及查找的效率,可以使用二叉排序树。

按照中序遍历的方法遍历二叉排序树,可以获得一个由小到大的排序数列。 

二叉排序树首先是查找,插入的时候,是要先查找,找不到的时候才插入,根据大小插入左右子树。

二叉排序树的删除,这个比插入更复杂

如果删除的是叶子节点,可以直接删除;如果是只有左子树或者右子树,删除这个双亲节点的时候,把左子树接上上一个节点就好。

如果删除的这个节点,是双亲节点,而且具有左子树与右子树。这个情况比较复杂。这个时候删除不是删除存储空间,而是对数据进行替换,双亲节点需要被左子树的最大值或者右子树的最小值进行替换

叉排序树的查找效率取决于生成的二叉树的数据的排列(树的形状),这个使二叉排序树的查找效率受到了限制,所以有了平衡二叉排序树。可以避免查找的复杂度由O(log2N)退化为O(n) 

由于内存和磁盘的速率关系,当数据量较大的时候,内存的容量不足以存储所有的数据,所以需要从磁盘里面读入读出,而磁盘的速率是远小于内存的速率的,所以为了提高访问的数速率,所以需要减少对磁盘的访问,尽可能的使用对内存的访问,能够明显提高效率,也就是使每一次访问的数据量更多,所以有了多路查找树

由于二叉树存储结构只有两个孩子,每个节点只能存储一个数据,所以应该在内存里应该设计一种存储结构,让每个节点可以存储多个元素,并且可以有多个孩子。

2-3树

23树由2节点和3节点构成,是高度平衡的二叉排序树

2-3树能够提高磁盘io效率

顺序表查找,有序表查找,散列表(哈希表)查找

散列技术中有对应关系,而顺序查找和有序查找中,虽然也有key以及存储位置,因为没有这个对应关系,所以要一个一个比较,而哈希表中有这种关系,可以根据关键字直接对应到存储位置。

散列表一对一查找,效率高,而且这个关键字必须唯一

所以其中最关键的是散列函数

相关文章

  • 最佳和平衡二叉排序树

    最佳二叉排序树 具有最小平均比较次数 平衡二叉排序树 平衡二叉树(AVL树):二叉树中每个节点的左右子树高度都差不...

  • 从零开始养成算法·篇二十:平衡二叉树与散列查找

    一、平衡二叉树 背景:平衡二叉树首先是二叉排序树。基于二叉排序树,外国的两个大爷发现树越矮查找效率越高,进而发明了...

  • 平衡二叉树

    一、概念 平衡二叉树是一种 二叉排序树 ,其中每个结点的左子树和右子树的高度差至多等于1 平衡因子:平衡二叉树是在...

  • 2019-05-03 二叉排序树,平衡树,哈夫曼树

    二叉排序树 那么啥是红黑树呢? 平衡二叉树 哈夫曼树 wpl最小的二叉树

  • 树总结(二)平衡二叉树

    一、平衡二叉树 平衡二叉树,是一种二叉排序树,其中每一个结点的左子树和右子树的高度差最多等于 1 1. 概念 平衡...

  • 8.4.2 平衡二叉树

    1.平衡二叉树概念(也叫 二叉排序树) 性质:1. 左右子树都是 平衡二叉树2. 左右子树的高度差的绝对值<1 平...

  • 二叉树 :有左右之分,次序不能颠倒 完全二叉树是一种效率很高的数据结构,二叉排序树要借助平衡性来实现,而平衡性基于...

  • TreeMap

    简述 何为TreeMap?TreeMap是一个二叉排序树构成的map。 TreeMap怎么实现二叉树的平衡?红黑树...

  • 查找概论3-平衡二叉树AVL

    概念 平衡二叉树:是一种二叉排序树,且其每一个节点的左子树与右子树的高度差<=1; 平衡因子(balance fa...

  • 平衡二叉树(AVL树)

    一、概念 平衡二叉树建立在二叉排序树的基础上,目的是使二叉排序树的平均查找长度更小,即让各结点的深度尽可能小,因此...

网友评论

      本文标题:2018-04-01 二叉排序树,平衡二叉树

      本文链接:https://www.haomeiwen.com/subject/notacftx.html