Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: BF  (Citit de 2599 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
cristy
De-al casei
***

Karma: 2
Deconectat Deconectat

Mesaje: 136



Vezi Profilul
BF
« : Martie 21, 2006, 20:07:22 »

spuneti-mi va rog cum se face bf in 0(N)?...care e ideea?
Memorat

... lipsa de inspiratie ...
u-92
Vizitator
BF
« Răspunde #1 : Martie 21, 2006, 20:36:32 »

tii liste cu vecinii fiecarui varf (alocate dinamic) si complexitatea o sa fie O(N+M) (mai multe detalii sunt in cormen)
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
BF
« Răspunde #2 : Martie 21, 2006, 21:53:06 »

Iterativ e cam asa:

Cod:
q[1] = sursa; 
uz[sursa] = 1;
crt = fin = 1;
while (crt <= fin)
{
       for (f = G[q[crt]]; f; f = f->next)
            if (!uz[f->id])
            { q[++fin] = f->id; uz[f->id] = 1; }
       crt++;
}


Ai un nod x si bagi intr-o stiva toti vecinii sai si dupa aia avansezi o pozitie in stiva si repeti procedeul. Algoritmul iti garanteaza ca nodurile apar in stiva crescator in functie de distanta pana la sursa ( nu e grea demonstratia, e oarecum si intuitiva ).
Memorat
bogdan2412
Echipa infoarena
Nu mai tace
*****

Karma: 410
Deconectat Deconectat

Mesaje: 951



Vezi Profilul
BF
« Răspunde #3 : Martie 21, 2006, 22:04:47 »

Se poate face BFS si recursiv?  Smile Si apropo e o coada.. nu stiva Tongue
Memorat
filipb
Nu mai tace
*****

Karma: 232
Deconectat Deconectat

Mesaje: 929



Vezi Profilul
BF
« Răspunde #4 : Martie 22, 2006, 15:01:42 »

Da, e o coada Embarassed
Recursiv banuiesc ca nu...
Memorat
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
BF
« Răspunde #5 : Martie 22, 2006, 16:45:38 »

Se poate face BF si recursiv, aproape orice se poate face si recursiv.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines