logo

БФС против ДФС

Пре него што погледамо разлике између БФС и ДФС, прво би требало да знамо о БФС и ДФС одвојено.

Шта је БФС?

БФС означава Претрага у ширину . Такође је познато као обилазак редоследа нивоа . Структура података реда се користи за прелазак у ширину прве претраге. Када користимо БФС алгоритам за прелазак у граф, можемо сматрати било који чвор као основни чвор.

Хајде да размотримо доњи графикон за прелазак у ширину прве претраге.

разлика између тигра и лава
БФС против ДФС

Претпоставимо да сматрамо чвор 0 као основни чвор. Према томе, прелазак би започео од чвора 0.

БФС против ДФС

Када се чвор 0 уклони из реда чекања, он се штампа и означава као а посећени чвор.

Када се чвор 0 уклони из реда, суседни чворови чвора 0 ће бити уметнути у ред као што је приказано у наставку:

БФС против ДФС

Сада ће чвор 1 бити уклоњен из реда чекања; штампа се и означава као посећени чвор

Када се чвор 1 уклони из реда, сви суседни чворови чвора 1 ће бити додати у ред. Суседни чворови чвора 1 су 0, 3, 2, 6 и 5. Али морамо да убацимо само непосећене чворове у ред чекања. Пошто чворови 3, 2, 6 и 5 нису посећени; стога ће ови чворови бити додати у ред као што је приказано у наставку:

БФС против ДФС

Следећи чвор је 3 у реду чекања. Дакле, чвор 3 ће бити уклоњен из реда, биће одштампан и означен као посећен као што је приказано у наставку:

БФС против ДФС

Када се чвор 3 уклони из реда, сви суседни чворови чвора 3 осим посећених чворова биће додати у ред. Суседни чворови чвора 3 су 0, 1, 2 и 4. Пошто су чворови 0, 1 већ посећени, а чвор 2 је присутан у реду чекања; стога, морамо да убацимо само чвор 4 у ред чекања.

како претворити стр у инт
БФС против ДФС

Сада, следећи чвор у реду је 2. Дакле, 2 ће бити избрисано из реда. Штампа се и означава као посећено као што је приказано у наставку:

БФС против ДФС

Када се чвор 2 уклони из реда, сви суседни чворови чвора 2 осим посећених чворова биће додати у ред. Суседни чворови чвора 2 су 1, 3, 5, 6 и 4. Пошто су чворови 1 и 3 већ посећени, а 4, 5, 6 су већ додати у ред чекања; стога, не морамо да убацујемо ниједан чвор у ред чекања.

Следећи елемент је 5. Дакле, 5 би било избрисано из реда чекања. Штампа се и означава као посећено као што је приказано у наставку:

БФС против ДФС

Када се чвор 5 уклони из реда, сви суседни чворови чвора 5 осим посећених чворова биће додати у ред. Суседни чворови чвора 5 су 1 и 2. Пошто су оба чвора већ посећена; према томе, не постоји врх који се убацује у ред чекања.

Следећи чвор је 6. Дакле, 6 би било избрисано из реда чекања. Штампа се и означава као посећено као што је приказано у наставку:

БФС против ДФС

Када се чвор 6 уклони из реда, сви суседни чворови чвора 6 осим посећених чворова биће додати у ред. Суседни чворови чвора 6 су 1 и 4. Пошто је чвор 1 већ посећен и чвор 4 је већ додат у ред чекања; према томе, не постоји врх за убацивање у ред чекања.

Следећи елемент у реду је 4. Дакле, 4 би било избрисано из реда. Штампа се и означава као посећено.

Када се чвор 4 уклони из реда, сви суседни чворови чвора 4 осим посећених чворова биће додати у ред. Суседни чворови чвора 4 су 3, 2 и 6. Пошто су сви суседни чворови већ посећени; тако да нема темена које треба убацити у ред чекања.

Шта је ДФС?

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

У случају БФС-а, елемента који се брише из Реда, суседни чворови избрисаног чвора се додају у Ред. Насупрот томе, у ДФС-у, елемент који је уклоњен из стека, тада се само један суседни чвор избрисаног чвора додаје у стек.

јава типови података

Хајде да размотримо доњи графикон за прелазак у дубину прве претраге.

БФС против ДФС

Размотрите чвор 0 као основни чвор.

Прво убацујемо елемент 0 у стек као што је приказано испод:

БФС против ДФС

Чвор 0 има два суседна чвора, тј. 1 и 3. Сада можемо узети само један суседни чвор, било 1 или 3, за прелазак. Претпоставимо да разматрамо чвор 1; стога, 1 се убацује у гомилу и штампа се као што је приказано у наставку:

БФС против ДФС

Сада ћемо погледати суседне врхове чвора 1. Непосећени суседни врхови чвора 1 су 3, 2, 5 и 6. Можемо размотрити било који од ова четири темена. Претпоставимо да узмемо чвор 3 и убацимо га у стек као што је приказано испод:

БФС против ДФС

Размотримо непосећене суседне врхове чвора 3. Непосећени суседни врхови чвора 3 су 2 и 4. Можемо узети било који од врхова, тј. 2 или 4. Претпоставимо да узмемо врх 2 и убацимо га у стек као што је приказано испод:

БФС против ДФС

Непосећени суседни врхови чвора 2 су 5 и 4. Можемо изабрати било који од врхова, тј. 5 или 4. Претпоставимо да узмемо врх 4 и убацимо у стек као што је приказано испод:

инурл:.гит/хеад
БФС против ДФС

Сада ћемо размотрити непосећене суседне врхове чвора 4. Непосећени суседни врх чвора 4 је чвор 6. Због тога је елемент 6 уметнут у стек као што је приказано испод:

БФС против ДФС

Након уметања елемента 6 у стек, погледаћемо непосећене суседне врхове чвора 6. Како нема непосећених суседних врхова чвора 6, тако да не можемо да се крећемо даље од чвора 6. У овом случају ћемо извести назадовање . Највиши елемент, тј., 6 би искочио из стека као што је приказано у наставку:

БФС против ДФС
БФС против ДФС

Највиши елемент у стеку је 4. Пошто нема непосећених суседних врхова лево од чвора 4; стога, чвор 4 излази из стека као што је приказано у наставку:

БФС против ДФС
БФС против ДФС

Следећи највиши елемент у стеку је 2. Сада ћемо погледати непосећене суседне врхове чвора 2. Пошто је остао само један непосећени чвор, тј. 5, тако да би чвор 5 био гурнут у стек изнад 2 и био одштампан како је приказано испод:

БФС против ДФС

Сада ћемо проверити суседне врхове чвора 5, који још увек нису посећени. Пошто нема више врха за посету, избацујемо елемент 5 из стека као што је приказано испод:

шта је имаил
БФС против ДФС

Не можемо да се крећемо даље 5, тако да морамо да извршимо назадовање. Приликом враћања уназад, највиши елемент би искочио из стека. Највиши елемент је 5 који би искочио из стека и враћамо се на чвор 2 као што је приказано испод:

БФС против ДФС

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

БФС против ДФС
БФС против ДФС

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

БФС против ДФС
БФС против ДФС

Након искакања елемента 3, проверићемо непосећене суседне врхове чвора 1. Пошто не постоји ниједан врх који треба посетити; стога ће се извршити враћање уназад. Код враћања уназад, највиши елемент, тј., 1 би искочио из стека, а ми се враћамо на чвор 0 као што је приказано испод:

БФС против ДФС
БФС против ДФС

Проверићемо суседне врхове чвора 0, који још увек нису посећени. Како не постоји ниједан суседни врх који треба посетити, вршимо враћање уназад. У овом случају, само један елемент, тј. 0 који је остао у стеку, би искочио из стека као што је приказано испод:

БФС против ДФС

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

Разлике између БФС и ДФС

Следе разлике између БФС и ДФС:

БФС ДФС
Пуни облик БФС је скраћеница од Бреадтх Фирст Сеарцх. ДФС је скраћеница од Дептх Фирст Сеарцх.
Техника То је техника заснована на теменима за проналажење најкраће путање у графу. То је техника заснована на ивици јер се врхови дуж ивице прво истражују од почетног до крајњег чвора.
Дефиниција БФС је техника преласка у којој се прво истражују сви чворови истог нивоа, а затим прелазимо на следећи ниво. ДФС је такође техника преласка у којој се обилажење покреће од основног чвора и истражује чворове што је даље могуће све док не дођемо до чвора који нема непосећене суседне чворове.
Структура података Структура података реда се користи за БФС обилазак. Структура података стека се користи за БФС обилазак.
Бацктрацкинг БФС не користи концепт враћања назад. ДФС користи враћање уназад да пређе све непосећене чворове.
Број ивица БФС проналази најкраћу путању са минималним бројем ивица које треба прећи од изворног до одредишног врха. У ДФС-у је потребан већи број ивица за прелазак од изворног врха до одредишног врха.
Оптималност БФС прелазак је оптималан за оне темене које треба претраживати ближе изворном врху. ДФС прелазак је оптималан за оне графове у којима су решења удаљена од изворног темена.
Брзина БФС је спорији од ДФС-а. ДФС је бржи од БФС-а.
Погодност за дрво одлучивања Није погодно за стабло одлучивања јер захтева прво истраживање свих суседних чворова. Погодан је за дрво одлучивања. На основу одлуке истражује све путеве. Када се пронађе циљ, он зауставља његово прелажење.
Ефикасна меморија Није меморијски ефикасан јер захтева више меморије него ДФС. Ефикасан је за меморију јер захтева мање меморије него БФС.