GeeksforGeeks

Breadth First Search

BFS står för Breadth First Search och är en vertexbaserad teknik för att hitta den kortaste vägen i en graf. Den använder en datastruktur med köer som följer principen ”först in, först ut”. I BFS väljs en vertex ut i taget när den besöks och markeras, därefter besöks dess angränsande vertexar och lagras i kön. Den är långsammare än DFS.
Ex-

 A / \ B C / / \ D E F

Output är:

A, B, C, D, E, F

Depth First Search

DFS står för Depth First Search och är en kantbaserad teknik. Den använder datastrukturen Stack och utför två steg, först läggs besökta hörn in i stapeln och om det inte finns några hörn tas de besökta hörnen bort.
Ex-

 A / \ B C / / \ D E F

Resultatet är:

A, B, D, C, E, F

BFS vs DFS

BFS står för Breadth First Search.

BFS (Breadth First Search) använder datastrukturen Queue (kö) för att hitta den kortaste vägen.

S.NO BFS DFS
DFS står för Depth First Search.
DFS (Depth First Search) använder datastrukturen Stack.
BFS kan användas för att hitta den kortaste vägen med en enda källa i en oviktad graf, eftersom vi i BFS når en punkt med minsta möjliga antal kanter från en källpunkt. I DFS kan det hända att vi går igenom fler kanter för att nå en målpunkt från en källa.
BFS lämpar sig bättre för att söka efter hörn som ligger närmare den givna källan. DFS lämpar sig bättre när det finns lösningar som ligger längre bort från källan.
BFS tar hänsyn till alla grannar först och lämpar sig därför inte för beslutsträd som används i spel eller pussel. DFS lämpar sig bättre för spel- eller pusselproblem. Vi fattar ett beslut och utforskar sedan alla vägar genom detta beslut. Och om detta beslut leder till en vinstsituation slutar vi.
Tidskomplexiteten för BFS är O(V + E) när Adjacency List används och O(V^2) när Adjacency Matrix används, där V står för hörn och E står för kanter. Tidskomplexiteten för DFS är också O(V + E) när Adjacency List används och O(V^2) när Adjacency Matrix används, där V står för vertices och E står för edges.

Se även BFS vs DFS for Binary Tree för att se skillnaderna för en binär trädtraversal.

Article Tags :
Praktik Taggar :

Lämna ett svar

Din e-postadress kommer inte publiceras.