БФС вс ДФС: Знајте разлику

Преглед садржаја:

Anonim

Шта је БФС?

БФС је алгоритам који се користи за графиковање података или претраживање стабла или обилажење структура. Алгоритам ефикасно посећује и означава све кључне чворове на графикону тачно у ширину.

Овај алгоритам бира један чвор (почетну или изворну тачку) на графикону, а затим посећује све чворове у близини изабраног чвора. Једном када алгоритам посети и означи почетни чвор, он се креће према најближим непосећеним чворовима и анализира их.

Једном посећени, сви чворови су обележени. Те се итерације настављају све док сви чворови графикона нису успешно посећени и обележени. Пуни облик БФС-а је претрага по ширини.

У овом БСФ вс. ДФС Бинарно дрво туториал, научићете:

  • Шта је БФС?
  • Шта је ДФС?
  • Пример БФС
  • Пример ДФС-а
  • Разлика између БФС и ДФС бинарног стабла
  • Примене БФС-а
  • Примене ДФС-а

Шта је ДФС?

ДФС је алгоритам за проналажење или прелазак графова или стабала у смеру према дубини. Извршење алгоритма започиње у коренском чвору и истражује сваку грану пре повратка уназад. Користи структуру података стека да би је запамтио, добио следећи врх и започео претрагу, кад год се у било којој итерацији појави слепа улица. Пуни облик ДФС-а је претрага по дубини.

Пример БФС

У следећем примеру ДФС-а користили смо граф који има 6 темена.

Пример БФС

Корак 1)

Имате графикон од седам бројева у распону од 0 - 6.

Корак 2)

0 или нула је означено као коријенски чвор.

Корак 3)

0 је посећено, означено и уметнуто у структуру података о реду.

Корак 4)

Преосталих 0 суседних и непосећених чворова се посећују, обележавају и убацују у ред.

Корак 5)

Итерације преласка понављају се док се не посете сви чворови.

Пример ДФС-а

У следећем примеру ДФС-а користили смо усмерени граф који има 5 темена.

Корак 1)

Кренули смо од темена 0. Алгоритам започиње стављањем на посећену листу и истовремено стављањем свих суседних врхова у структуру података која се назива стек.

Корак 2)

Посетићете елемент који се налази на врху стека, на пример, 1 и отићи до његових суседних чворова. То је зато што је 0 већ посећено. Због тога посећујемо врх 2.

Корак 3)

Вертек 2 има непосећени оближњи темен у 4. Стога га додајемо у стек и посећујемо га.

Корак 4)

Коначно, посетићемо последњи врх 3, он нема ниједан непосећени суседни чвор. Завршили смо заокрет графа користећи ДФС алгоритам.

Разлика између БФС и ДФС бинарног стабла

БФС ДФС
БФС проналази најкраћи пут до одредишта. ДФС иде на дно подстабла, па назадује.
Пуни облик БФС-а је „Ширина-прво претраживање“. Пуни облик ДФС-а је Дубина прва претрага.
Користи ред за евидентирање следеће локације коју треба посетити. Користи стек за праћење следеће локације коју треба посетити.
БФС пролази кроз ниво стабла. ДФС прелази према дубини стабла.
Примењује се помоћу ФИФО листе. Примењује се помоћу ЛИФО листе.
Захтева више меморије у поређењу са ДФС-ом. Захтева мање меморије у поређењу са БФС-ом.
Овај алгоритам даје решење плитке путање. Овај алгоритам не гарантује решење најплиће путање.
У БФС-у није потребно враћање уназад. У ДФС-у постоји потреба за повратом уназад.
Никада не можете бити заробљени у коначне петље. Можете бити заробљени у бесконачне петље.
Ако не пронађете ниједан циљ, можда ћете морати да проширите много чворова пре него што решење буде пронађено. Ако не пронађете ниједан циљ, може се десити повратак у чвор листова.

Примене БФС-а

Ево примена БФС-а:

Непондерисани графикони:

БФС алгоритам може лако створити најкраћу путању и минимално распонско стабло да посети све темеље графа у најкраћем могућем року са великом тачношћу.

П2П мреже:

БФС се може применити за лоцирање свих најближих или суседних чворова у пеер то пеер мрежи. Тако ћете брже пронаћи потребне податке.

Веб пописивачи:

Претраживачи или веб пописивачи могу лако изградити више нивоа индекса применом БФС-а. Имплементација БФС-а започиње од извора, а то је веб страница, а затим посећује све везе из тог извора.

Мрежно емитовање:

Емитовани пакет вођен је БФС алгоритмом да пронађе и дође до свих чворова за које има адресу.

Примене ДФС-а

Овде су важне апликације ДФС-а:

Пондерисани графикон:

У пондерисаном графу, ДФС прелазак графа генерише стабло најкраће путање и минимално распонично стабло.

Откривање циклуса у графикону:

Графикон има циклус ако смо пронашли задњу ивицу током ДФС-а. Због тога бисмо требали покренути ДФС за графикон и верификовати задње ивице.

Проналажење путање:

Можемо се специјализовати за алгоритам ДФС за тражење пута између два темена.

Тополошко сортирање:

Она се првенствено користи за заказивање послове из датих зависности међу групе послова. У рачунарству се користи у планирању инструкција, сериализацији података, синтези логике, одређивању редоследа задатака компилације.

Претраживање чврсто повезаних компоненти графа:

Користио се у ДФС графу када постоји пут од сваког врха у графу до осталих преосталих врхова.

Решавање загонетки само једним решењем:

ДФС алгоритам се лако може прилагодити претраживању свих решења за лавиринт укључивањем чворова на постојећу путању у посећени скуп.

КЉУЧНЕ РАЗЛИКЕ:

  • БФС проналази најкраћи пут до одредишта, док ДФС иде на дно подстабла, а затим враћа назад.
  • Пуни облик БФС-а је претрага ширине ширине, док је пуни облик ДФС претрага дубине прве претраге.
  • БФС користи ред за праћење следеће локације коју треба посетити. док ДФС користи стек да би пратио следећу локацију коју треба посетити.
  • БФС прелази према нивоу дрвета док ДФС прелази према дубини стабла.
  • БФС се примењује помоћу ФИФО листе, с друге стране ДФС се примењује помоћу ЛИФО листе.
  • У БФС-у никада не можете бити заробљени у коначне петље док у ДФС-у можете бити заробљени у бесконачне петље.