При перемещении многосвязного графика порядок прохождения узлов может значительно повлиять (на много порядков) количество узлов, которые будут отслеживаться методом перемещения. Некоторые виды алгоритмов будут значительно лучше при использовании ширины; другие будут значительно лучше при использовании поиска глубины.
С одной стороны, выполнение поиска по глубине в двоичном дереве с N листовыми узлами требует, чтобы метод перемещения отслеживал узлы lgN, в то время как поиск в ширину потребовал бы отслеживания не менее N/2 узлов (так как он может сканировать все остальные узлы до того, как он сканирует любые листовые узлы, сразу перед сканированием первого листового узла он столкнулся бы с N/2 родительских узлов листьев, которые нужно отслеживать отдельно, поскольку ни один из них не ссылается друг на друга) ,
С другой стороны, делая заливку заливки сеткой NxN с помощью метода, который, если его пиксель еще не был окрашен, цвета, которые пиксель, а затем наводнения для его соседей, потребуют запирания O (N) пиксельные координаты при использовании поиска по ширине, но O (N^2) пиксельные координаты при использовании глубины-первой. При использовании поиска по ширине краска будет казаться «разбросанной», независимо от формы, которую нужно нарисовать; при использовании алгоритма глубины для рисования прямоугольной спирали, каждая линия которой прямая с одной стороны и зубчатая на другой (какие стороны должны быть прямыми и зубчатыми, зависит от используемого точного алгоритма), все прямые участки будут окрашены перед любой из зубчатых, что означает, что система должна отслеживать местоположение каждого зубца отдельно.
см. Http://stackoverflow.com/questions/687731/breadth-first-vs-depth-first ... содержит полезную информацию и ссылки, в том числе 3 части блога, связанные с одним из двух последних ответов. – hatchet
Спасибо, что поделились этим. Это выглядит действительно полезно. На самом деле, я понимаю, как работают оба алгоритма, просто хочу знать, почему нам нужны два из них: – Kris
похоже на http://stackoverflow.com/questions/1657174/what- is-breadth-first-search-useful-for – hatchet