给定固定数量的键或值(存储在数组或某些数据结构中)和b-tree的顺序,我们可以确定插入键的顺序,这将生成一个节省空间的b树.
为了说明,考虑3阶的b树.让密钥为{1,2,3,4,5,6,7}.按以下顺序将元素插入树中
for(int i=1 ;i<8; ++i)
{
tree.push(i);
}
Run Code Online (Sandbox Code Playgroud)
会像这样创建一棵树
4
2 6
1 3 5 7
Run Code Online (Sandbox Code Playgroud)
见http://en.wikipedia.org/wiki/B-tree
但是以这种方式插入元素
flag = true;
for(int i=1,j=7; i<8; ++i,--j)
{
if(flag)
{
tree.push(i);
flag = false;
}
else
{
tree.push(j);
flag = true;
}
}
Run Code Online (Sandbox Code Playgroud)
创建一个这样的树
3 5
1 2 4 6 7
Run Code Online (Sandbox Code Playgroud)
我们可以看到水平有所下降.
那么是否有一种特定的方法来确定可以减少空间消耗的插入顺序?