Sei ein verwurzelter Binärbaum. Jeder Weg von der Wurzel von T zu einem Blatt hat die Länge n . Jeder Knoten von T hat immer einen linken und einen rechten untergeordneten Knoten, aber es ist möglich, dass sie gleich sind (es sind also immer 2 n Pfade möglich). Die Größe von T ist durch O ( p o l y ( n ) ) begrenzt . Ein Knoten mit verschiedenen untergeordneten Knoten wird als Verzweigungsknoten bezeichnet .
Wir sagen, dass zwei Pfade unterschiedlich sind, wenn es einen gemeinsamen Verzweigungsknoten gibt und ein Pfad zum linken untergeordneten Knoten und der andere Pfad zum rechten untergeordneten Knoten führt. Es ist klar, dass es in mindestens einen Pfad mit O ( log n ) Verzweigungsknoten gibt. Andernfalls würde es in T zu viele Knoten geben .
Gibt es eine bessere Untergrenze für die Anzahl der Pfade mit Verzweigungsknoten, wenn ich weiß, dass der Baum ω ( log n ) Verzweigungsknoten enthält?
quelle
Antworten:
Die Untergrenze sind Pfade mit O ( log n ) Verzweigungsknoten, wenn Sie mindestens Ω ( log n ) Verzweigungsknoten im Baum haben.Ω(logn) O(logn) Ω(logn)
Dies kann erreicht werden: Verwenden Sie einen Baum mit einem langen Pfad (Länge ), dessen Knoten alle Verzweigungsknoten sind, ohne andere Verzweigungsknoten im Baum.n
Hier ist eine Skizze der Untergrenze.
Verdichten Sie zunächst den Baum, indem Sie einen inneren Knoten zusammenziehen, der kein Verzweigungsknoten ist. Wenn die ursprüngliche Größe des Baums , muss der neue Baum immer noch < n c sein , da Sie nur die Anzahl der Knoten reduziert haben. Die Tiefe eines Blattes ist nun die Anzahl der Verzweigungsknoten auf dem ursprünglichen Pfad zu diesem Blatt, und wir haben einen vollständigen Binärbaum (jeder Knoten hat entweder Grad 2 oder 0).<nc <nc
Wenn es keine Blätter mit der Tiefe , ist die Anzahl der Pfade eins mehr als die Anzahl der Verzweigungsknoten, dh Ω ( log n ) , sodass wir davon ausgehen können, dass mindestens ein Blatt die Tiefe Ω ( log) hat n ) .Ω(logn) Ω(logn) Ω(logn)
Erinnern Sie sich als nächstes an Krafts Ungleichung. Wenn die Tiefe eines Blattes in einem vollständigen Binärbaum , dann ist Σ v l e a f 2 - d ( v ) = 1 .d(v) Σv leaf2−d(v)=1
Jetzt haben wir weniger als Blätter. Wir wollen zeigen, dass wir viele davon in der Tiefe O ( log n ) haben . Nehmen wir an, wir eliminieren diejenigen mit einer Tiefe von mindestens log 2 ( n c + 1 ) = ( c + 1 ) log 2 n aus der Betrachtung . Dies entfernt höchstens das Gewicht 1 / n von der Summe in Krafts Ungleichung, so dass für diese Blätter v höchstens d ( v ) ≤ ( c + ) in der Tiefe istnc O(logn) log2(nc+1)=(c+1)log2n 1/n v d(v)≤(c+1)log2n ∑v low depth leaf2−d(v)>1−1n ∑v low depth leaf2−d(v)<1
Es ist ziemlich einfach zu zeigen, dass man eine Summe der Zahlen genau zwischen 1 und 1 - 1 erhält2−k 1 , müssen wir mindestenslog2nvon ihnen. Dies zeigt, dass esΩ(logn)Pfade mitO(logn)Verzweigungsknoten gibt.1−1n log2n Ω(logn) O(logn)
quelle