Я пытаюсь найти все пути между 2 узлами в сетке, и путь должен проходить через все узлы от начала до конца.Пример (Start = S, End = E)
0 0 0
0 S 0
0 0 E
Ответ на приведенный выше вопрос - 2 пути: (игнорировать '. 's)
0-0-0
| ....... |
0 S-0
|
0-0-E
0-0-0
| ...... |
0 S 0
| ... | ... |
0-0 E
Я подумал об использовании рекурсии, но отказался от этого из-за высоких издержек при каждом вызове ... и решил использовать итеративный подход с использованием стека.(вроде как повторение, но не ... фиксированные накладные расходы памяти).Решение отлично работает для сеток размером (4x7), но пробовал его на сетке 8x8 ... и оно не закончилось за 4 часа ... что имеет смысл, поскольку общее число возможностей составляет около 3 **62 (приблизительно), так как каждый узел, который не находится на краю, имеет 3 возможных пути обхода ... и, следовательно, это решение терпит неудачу.
Я думал разбить сетку 8x8 на 2, используя вертикальную и горизонтальнуюразделить ... но это привело бы к нахождению путей, не являющихся идеальными.
Есть ли что-то, что я пропускаю ????Можно ли что-то сделать, чтобы сделать это быстрее?Я опубликую решение, которое у меня есть завтра (сделано в C).