In welcher Reihenfolge sollten Sie einen Satz bekannter Schlüssel in einen B-Tree einfügen, um eine minimale Höhe zu erhalten?

Wenn eine feste Anzahl von Schlüsseln oder Werten (entweder in einem Array oder in einer Datenstruktur gespeichert) und die Reihenfolge des B-Baums gegeben sind, können wir die Reihenfolge des Einfügens von Schlüsseln bestimmen, die einen platzsparenden B-Baum erzeugen würden.

Betrachten Sie zur Veranschaulichung den B-Baum der Ordnung 3. Die Schlüssel seien {1,2,3,4,5,6,7}. Einfügen von Elementen in den Baum in der folgenden Reihenfolge

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

würde einen Baum wie diesen schaffen

        4
     2      6
   1  3   5   7

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

Aber Elemente auf diese Weise einfügen

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

schafft einen Baum wie diesen

    3 5
1 2  4  6 7

Wo wir sehen können, sinkt das Niveau.

Gibt es also eine bestimmte Möglichkeit, die Einfügefolge zu bestimmen, um den Platzbedarf zu senken?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage