B 树
B-树就是 B 树,-
只是一个符号。
B 树(B-Tree)是一种自平衡的树,它是一种多路搜索树(并不是二叉的),能够保证数据有序。同时它还保证了在查找、插入、删除等操作时性能都能保持在 O(logn)
,为大块数据的读写操作做了优化,同时它也可以用来描述外部存储(支持对保存在磁盘或者网络上的符号表进行外部查找)
特点:
- 定义任意非叶子结点最多只有 M 个儿子;且 M>2
- 根结点的儿子数为[2, M]
- 除根结点以外的非叶子结点的儿子数为[M/2, M]
- 每个结点存放至少 M/2-1(取上整)和至多 M-1 个关键字;(至少 2 个关键字)
- 非叶子结点的关键字个数=指向儿子的指针个数-1
- 非叶子结点的关键字:K[1], K[2], …, K[M-1];且 K[i] < K[i+1]
- 非叶子结点的指针:P[1], P[2], …, P[M],其中 P[1]指向关键字小于 K[1]的子树,P[M]指向关键字大于 K[M-1]的子树,其它 P[i]指向关键字属于(K[i-1], K[i])的子树
- 所有叶子结点位于同一层
参考资料: