B树
前面讨论2-3树时已经提到过,B树就是一颗平衡M叉树,其插入删除操作都可以与2-3树作类似处理,这里不再赘述。
这里简单讨论下其实际意义:之前的各种二叉树都有一个共同假设,即数据全部存储在内存中,因此讨论时只需关心在找到目标之前需要比较多少次数。但是当数据量大到不适合存放在内存时,就需要借助磁盘来保存了,而磁盘访问相对于内存操作要慢得多得多,因此,这时对于性能的考虑更多的是关心如何减少磁盘访问操作,
思路是将(有序)数据分为 N 批,并用 M 叉平衡树来组织,即访问磁盘时每批返回至多 M-1 项数据,那么在访问某项数据时,至多需要访问磁盘的次数就为 $\log_{M} {N}$