Home Hardware Networking Programmazione Software Domanda Sistemi
Conoscenza Informatica >> Programmazione >> Computer Programming Languages >> .

Qual è la complessità temporale di una ricerca in profondità

? Una ricerca in profondità è un algoritmo che cerca proceduralmente un grafico o di struttura ad albero di viaggiare più in basso l'albero come si può prima di eseguire il backup . Il tempo che l'algoritmo necessario per terminare dipende dal numero di nodi del grafo . Nel peggiore dei casi , l' algoritmo deve visitare ogni nodo del grafo. Albero Grafici

Nel contesto di grafici , un albero è un grafo in cui ogni nodo tranne il nodo di origine "root" ha un solo nodo padre il cui lignaggio risale al nodo principale. Il grafico forma una struttura simile a quella di un albero di Natale , progressiva espansione e l'aggiunta di nuovi nodi e bambini ad ogni livello . In un albero , il numero di bambini che ogni nodo è " fattore di ramificazione . " Dell'albero Il numero di generazioni in l'albero è l'albero "profondità ".
Ricerca in profondità

ricerca in profondità è un metodo di ricerca attraverso un albero , in cui l'algoritmo cammina lungo l'albero fino a trovare il nodo di destinazione . A partire dal nodo radice , l'algoritmo cammina verso il prossimo figlio e quindi nipote di quel bambino , ripetendo il processo fino a quando non trova un nodo senza figli "foglia" . Dopo che trova quel nodo , si torna indietro fino finché non trova un nodo non esaminata . Se non ci sono i nodi più esaminati , non si ferma.
Algoritmo Tempo Complessità

Il tempo di attraversamento di un albero tramite ricerca in profondità dipende dal numero di vertici del grafo e bordi tra loro. Nel caso peggiore , l'algoritmo deve viaggiare attraverso ogni vertice e lungo ogni bordo , in modo che il tempo necessario è il numero di vertici e il numero di bordi , o "V + E. " Per un albero , il numero di bordi è uguale ai nodi meno uno , quindi il tempo totale è " 2V - . 1" Se ciascun nodo del grafico ha lo stesso numero di figli - un fattore di ramificazione costante - allora questo tempo è pari a quel fattore . elevato alla potenza di profondità dell'albero
Altre considerazioni

Nell'attuare qualsiasi algoritmo , la velocità dell'algoritmo dipende da due fattori : il numero di calcoli che deve fare e il tempo necessario per accedere alle risorse necessarie per l'esecuzione - di solito la memoria . La maggiore quantità di memoria di un programma richiede , il tempo che impiega per l'esecuzione. Una ricerca in profondità deve ricordare i nodi precedenti ha visitato , quindi la quantità caso peggiore di memoria che richiede è uguale al numero di nodi dell'albero .

 

Programmazione © www.354353.com