Em que ordem você deve inserir um conjunto de chaves conhecidas em uma Árvore B para obter uma altura mínima?

Dado um número fixo de chaves ou valores (armazenados em array ou em alguma estrutura de dados) e ordem de b-tree, podemos determinar a sequência de inserção de chaves que gerariam uma b-tree eficiente em espaço.

Para ilustrar, considere a b-tree de ordem 3. Deixe as chaves serem {1,2,3,4,5,6,7}. Inserindo elementos na árvore na seguinte ordem

for(int i=1 ;i<8; ++i)
{
 tree.push(i);  
}

criaria uma árvore como esta

        4
     2      6
   1  3   5   7

Vejohttp://en.wikipedia.org/wiki/B-tree

Mas inserindo elementos dessa maneira

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;
    }   
}

cria uma árvore como esta

    3 5
1 2  4  6 7

onde podemos ver que há diminuição no nível.

Então existe uma maneira particular de determinar a sequência de inserção que reduziria o consumo de espaço?

questionAnswers(5)

yourAnswerToTheQuestion