Wie kann die Höhe eines Rekursionsbaums aus einer Rekursionsbeziehung ermittelt werden?

8

Wie wird man die Höhe eines Rekursionsbaums bestimmen, der bei wiederkehrenden Laufzeiten erstellt wird? Wie unterscheidet es sich von der Höhe eines normalen Baumes?

alt text http://homepages.ius.edu/rwisman/C455 /html/notes/Chapter4/ch4-9.gif

edit: Entschuldigung, ich wollte hinzufügen, wie die Höhe des Rekursionsbaums aus der Rekursionsbeziehung erhalten wird.

    
Chris 28.08.2009, 15:55
quelle

3 Antworten

4

Wenn die Wiederholung die Form von T (n) = aT (n / b) + f (n) hat, dann ist die Tiefe des Baumes die logarithmische Basis b von n.

Zum Beispiel hätte 2T (n / 2) + n Wiederholung Baum der Tiefe Ig (n) (Log-Basis 2 von n).

    
ejel 25.09.2009 01:29
quelle
2

Wenn es sich um eine Hausaufgabenfrage handelt, markieren Sie sie bitte als solche. Die Bilder, auf die Sie verlinken, deuten darauf hin, dass Sie in CS 455 bei Professor Wisman sind. :)

Der wichtigste Hinweis, den ich geben werde, ist dies: Die Höhe des Baumes wird offensichtlich bestimmt, wenn man zu den "Blättern" kommt. Die Blätter eines Baumes, der die Wiederholungsrelation einer Funktion modelliert, sind der Basisfall. Daher würde ich darauf schauen, wie "schnell" N zum Basisfall schrumpfen kann.

    
agorenst 29.08.2009 05:24
quelle
1

Die Höhe des Rekursionsbaums hängt von dem fraglichen rekursiven Algorithmus ab. Nicht alle Divide and Conquer-Algorithmen haben einheitliche Höhenbäume, so wie nicht alle Baumstrukturen einheitliche Höhen haben. Wenn Sie die maximal mögliche Höhe des Algorithmus nicht bestimmen können, oder wenn Sie die tatsächliche Höhe des Baums zur Laufzeit berechnen müssen, können Sie eine globale Variable für die rekursive Funktion verwenden, sie beim Eingang der Funktion inkrementieren und dekrementieren es auf den Funktionsexit. Diese Variable zeigt die aktuelle Stufe der rekursiven Prozedur an. Bei Bedarf können Sie den Maximalwert dieser Variablen in einer zweiten Variablen pflegen.

    
xpda 28.08.2009 16:05
quelle