GeeksforGeeks

Breadth First Search

BFS tarkoittaa Breadth First Search eli Breadth First Search -tekniikkaa, jonka avulla löydetään lyhin polku graafista. Se käyttää Queue-tietorakennetta, joka noudattaa first in first out -periaatetta. BFS:ssä valitaan yksi vertex kerrallaan, kun se on vierailtu ja merkitty, sitten sen viereiset vertexit käydään läpi ja tallennetaan jonoon. Se on hitaampi kuin DFS.
Ex-

 A / \ B C / / \ D E F

Tulos on:

A, B, C, D, E, F

Depth First Search

DFS tarkoittaa Depth First Search on reunapohjainen tekniikka. Se käyttää Stack-tietorakennetta, suorittaa kaksi vaihetta, ensin käydyt verteksit työnnetään pinoon ja toiseksi jos ei ole verteksejä niin käydyt verteksit poistetaan.
Ex-

 A / \ B C / / \ D E F

Tulos on:

A, B, D, C, E, F

BFS vs DFS

S.NO BFS DFS
BFS tarkoittaa Breadth First Search. DFS tarkoittaa Depth First Search.
BFS(Breadth First Search) käyttää Queue-tietorakennetta lyhimmän polun löytämiseen. DFS(Depth First Search) käyttää Stack-tietorakennetta.
BFS:ää voidaan käyttää yhden lähteen lyhimmän polun etsimiseen painottamattomassa graafissa, koska BFS:ssä päästään pisteeseen, jossa on vähimmäismäärä särmiä lähteen pisteestä. DFS:ssä saatamme kulkea useamman särmän läpi saavuttaaksemme määränpääpisteen lähteestä.
BFS soveltuu paremmin etsimään sellaisia kärkipisteitä, jotka ovat lähempänä annettua lähdettä. DFS soveltuu paremmin silloin, kun ratkaisut ovat kaukana lähteestä.
BFS huomioi ensin kaikki naapurit, joten se ei sovellu peleissä tai arvoituksissa käytettäviin päätöspuihin. DFS soveltuu paremmin pelien tai pulmien ongelmiin. Tehdään päätös ja tutkitaan sitten kaikki polut tämän päätöksen kautta. Ja jos tämä päätös johtaa voittotilanteeseen, lopetamme.
BFS:n aikakompleksisuus on O(V + E), kun käytetään Adjacency Listiä, ja O(V^2), kun käytetään Adjacency Matrixia, jossa V tarkoittaa kärkipisteitä ja E tarkoittaa reunoja. DFS:n aikakompleksisuus on myös O(V + E), kun käytetään Adjacency Listiä ja O(V^2), kun käytetään Adjacency Matrixia, jossa V tarkoittaa kärkipisteitä ja E tarkoittaa reunoja.

Katsokaa myös BFS vs. DFS for Binary Tree, kun tarkastellaan eroja binääripuun läpikulkua varten.

Artikkeli Avainsanat :
Practice Tags :

Vastaa

Sähköpostiosoitettasi ei julkaista.