Re[2]: Поиск связанных областей в двумерном массиве
От: barn_czn  
Дата: 28.08.03 08:09
Оценка:
Здравствуйте, Вадим Никулин, Вы писали:

ВН>Здравствуйте, golyakov, Вы писали:


G>>Написал сам через рекурсивную функцию, рассматривающую объекты вокруг себя, но это слишком медленно.

G>>Подскажите чего-нибудь.

ВН>У рекурсивного алгоритма есть такая особенность: он просматривает одну и ту же клетку несколько раз. Выход из положения: запоминать во вспомогательном массиве уже просмотренные клетки, например, заведем еще таблицу такого же размера, и будем в ее клетках хранить номер группы, к которой относится соответствующая клетка первой таблицы. Изначально заполним всю таблицу -1. А в рекурсивной процедуре смотреть, уже были в клетке (!=-1), или еще не были(==-1).



А мне кажеться что никакой рекурсии не надо. Мое понимание задачи такое:
для двух заданных точек на 2D определить принадлежат ли они одному связному множеству.
Т.е. существует ли путь от одной точки к другой. Но это уже известная задача.
Решается она по моему волновым алгоритмом. Типичное применение — игрушки(когда вы
"посылаете на смерть" юнита в стратегии). И нет там никакой рекурсии.
На счет волнового алгоритма — могу упустить детали,но идея такова.
Из начальной точки начинаем момечать все соседние до тех пор пока не дойдем
до конечной точки или до конца массива.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.