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 :