B树

多路查找树(mutil-way search tree)其每个节点的孩子数可以多于两个,且每个结点处可存储多个元素。

4中特殊形式:2-3树、2-3-4树、B树、B+树

2-3树:

是这样的一棵多路查找树:其中的每个节点都具有两个孩子或三个孩子。一个2节点包含一个元素和两个孩子(或没有孩子);一个3节点博阿含一小一大两个元素和3个孩子(或没有孩子)。

B树:是一种平衡的多路查找树,2-3树和2-3-4树都是B树的特例。节点最大的孩子数成为B树的阶。

在计算机科学中,B树是存储排序数据并允许以O(logn)的运行时间进行查找,顺序读取,插入和删除的数据结构。B树,概括来说是一个节点可以拥有多于2个子节点的二叉查找树。与自平衡二叉查树不同,B—树为系统最优化大块数据的读和写操作。B-Tree算法减少定位记录时所经历的中间过程,从而加速存取速度。普遍应用于数据库和文件系统。

在节点存取时间远超过里层节点存取时间的条件下,B树在可行的实现中很多优势,因为如此存取节点的开销被分摊到里层节点的多次操作上。这通常出现在当节点存储在二级存储器如硬盘存储器上。通过最大化内部里层节点的子节点的数量,树的高度减小,存取节点的开销被缩减。另外,重新平衡树的动作也更少出现。子节点的最大数量取决于,每个子节点必需存储的信息量,和完整磁盘块的大小或者二次存储器中类似的容量。虽然2-3 树更易于解释,实际运用中,B树使用二级存储器,需要要大量数目的子节点来提升效率。

如果内存和外村交换数据的次数频繁,会造成时间效率上的瓶颈,那么B树结构怎么减少次数?

外存,如硬盘,将所有信息分割成相等大小的页面,每次硬盘读写的都是一个或多个完整的页面,对于硬盘来说,一页长度可能是211或214个字节。

B树的阶数与硬盘存储的页面大小相匹配。比如一棵B树的阶数是1001即(一个节点包含1000个关键字),高度为2则它可以存储10亿个关键字,我们只要让根节点持久地保留在内存中,那么这颗树上寻找某一个关键字最多需要两次硬盘读写。

B+树

相比B树,解决所有元素遍历等基本问题。

你可能感兴趣的:(B树)