B-tree
定义
- 根节点至少包含两个孩子
- 树种每个节点最多包含m个孩子(m>=2)
- 除根节点和叶子节点外,其他每个节点至少有ceil(m/2)个孩子
- 所有叶子节点都位于同一层
- 每个非终端节点中包含n个关键字信息,其中
a) Ki(i=1…n)为关键字,且关键字按顺序升序排序K(i-1)<Ki
b) 关键字的个数n必须满足:[ceil(m/2-1)]<=n<=m-1
c) 非叶子节点的指针:P1],P[2],…,P[M];其中P[1]指向关键字小于k[1]的子树,p[M]指向关键字大于K[M-1]的子树,其它P[i]指向关键字属于(K[i-1],K[i])的子树
用图来说明一下最后一条定义
a)如图节点8和节点12,12大于8
b)8和12节点的关键字个数比p1p2p3少1
c)P1的3和5小于8,P2的9和10大于8小于12,P3的13和15大于12
优点
时间复杂度为O(logN)
缺点
如果节点被删除,还是要重新进行排序