2009-08-28 12 views
8

Come si fa a determinare l'altezza di un albero di ricorsione, costruito quando si ha a che fare con i tempi di ricorrenza delle ricorrenze? In che cosa differisce dal determinare l'altezza di un albero normale?Come determinare l'altezza di un albero di ricorsione da una relazione di ricorrenza?

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

edit: scusa, volevo dire aggiungere come ottenere l'altezza del albero di ricorsione dalla recidiva relazione.

+0

Sparate dal mio culo qui, ma non vedo la differenza. Perché pensi che ci sia una differenza? In astratto, sono entrambi alberi ... –

+0

vedere la mia risposta qui: http://stackoverflow.com/questions/2307283/what-does-olog-n-mean-exact/13093274#13093274 – 2cupsOfTech

risposta

1

L'altezza dell'albero di ricorsione dipende dall'algoritmo ricorsivo in questione. Non tutti gli algoritmi di divisione e conquista hanno alberi di altezza uniformi, così come non tutte le strutture ad albero hanno altezze uniformi. Se non è possibile determinare l'altezza massima possibile dell'algoritmo o se è necessario calcolare l'altezza effettiva dell'albero in fase di esecuzione, è possibile utilizzare una variabile globale per la funzione ricorsiva, incrementarla all'entrata della funzione e decrementare questo all'uscita della funzione. Questa variabile indicherà il livello corrente della procedura ricorsiva. Se necessario, è possibile mantenere il valore massimo di questa variabile in una seconda variabile.

2

In primo luogo, se si tratta di una domanda a casa, contrassegnarla come tale. Le immagini che linki implicano che sei in CS 455, con il Professor Wisman. :)

Il suggerimento principale che darò è questo: l'altezza dell'albero è ovviamente determinata da quando si arriva alle "foglie". Le foglie di un albero che modellano la relazione di ricorrenza di una funzione sono il caso base. Quindi, guarderei per vedere come "rapidamente" N può ridursi al caso base.

+0

Questo non è compito:) Studio personale. L'immagine a cui mi collegavo era la più pertinente sulle immagini di google. Avrei dovuto chiarire prima, scusa! – Chris

+0

Siamo spiacenti, ha aggiunto il commento troppo presto. La tua risposta ha sicuramente un senso. Tuttavia, di solito non è possibile seguire le foglie fino in fondo. Creare i primi rami è banale. È da lì in poi che mi ha un po 'confuso :) – Chris

4

Se la ricorrenza è in forma di T (n) = aT (n/b) + f (n), la profondità dell'albero è log base b di n.

Ad esempio, 2T (n/2) + n ricorrenza avrebbe l'albero di profondità lg (n) (base di registro 2 di n).

Problemi correlati