Я думаю, було б цікаво написати їх обом таким чином, що лише перемикаючи рядки коду, ви дасте вам один алгоритм чи інший, щоб ви побачили, що ваша дилема не така сильна, як здається спочатку .
Мені особисто подобається трактування BFS як затоплення ландшафту: спочатку затоплені ділянки з низькою висотою, і лише після цього слідкують за висотними районами. Якщо ви уявляєте висоту ландшафту такою ж ізолінією, як ми бачимо в географічних книгах, легко зрозуміти, що BFS заповнює всю площу під одним і тим же ізоліном одночасно, як це було б з фізикою. Таким чином, інтерпретація висот як відстань чи масштабована вартість дає досить інтуїтивне уявлення про алгоритм.
Маючи це на увазі, ви можете легко адаптувати ідею за шириною першого пошуку, щоб легко знайти мінімальне прольотове дерево, найкоротший шлях, а також безліч інших алгоритмів мінімізації.
Я ще не бачив будь-якої інтуїтивно зрозумілої інтерпретації DFS (лише стандартну про лабіринт, але вона не така потужна, як BFS та затоплення), тому для мене здається, що BFS здається краще співвідноситься з фізичними явищами, як описано вище, тоді як DFS краще співвідноситься з варіантами дилеми на раціональних системах (тобто люди чи комп’ютери, які вирішують, який рух рухати в шахову гру чи виходити з лабіринту).
Отже, для мене різниця між брехнею, щодо того, яке природне явище найкраще відповідає їхній моделі поширення (поперек) у реальному житті.