B树 平衡的多路搜索树
随着技术的发展,计算机的相对可用内存越来越少,如何访问并操作管理大量数据?存如果内存容量越大,访问速度就越慢。为了同时兼顾访问速度与大数据量,这里引入了B树,主要用来跨存储器间的数据交换。不同容量的存储器,访问速度差异悬殊。因此我们把更常用的数据放在更高层,更小的存储器中,找不到的话,再向更底层、更大的存储器索取。不同存储器间的数据读取称为I/O。
有这么一个事实,在磁盘中读写1B的时间几乎与1KB一样快。同样,批量式访问:以页或块为单位,使用缓冲区。在涉及频繁处理大数据量的算法时,我们要么一次性若干个KB,要么一个字节也不访问。
在B树中,所有的节点都会变成或大或小的超级节点。每2代合并为4路,每3代合并为8路,同样,每d代合并为2^d=m路,该节点共m-1个关键码
多级存储系统中使用B树,由于超级结点的存在,可针对外部查找大大减少I/O的次数。每一层,都以超级节点为单位,读入一组关键码(这就是批量访问在B树中的具体体现)。对于同数据量的访问,B树与AVL树的访问时间可相差10^5的量级。
m-阶B树,即m路平衡搜索树。在B树中,引入了外部节点。外部节点也就是叶节点的下一层。外部节点的深度统一相等,所有叶节点的深度统一相等。因此,可把B树近似的看作理想二叉树(多叉树)。此时,树高为外部节点的深度而不是叶结点的深度。
B树对超级节点的要求严格:
m阶B树节点的