1

Тема: Алгоритм проверки смежности в трехмерной матрице

Добрый день, коллеги!

Прошу поделиться вашими светлыми мыслями по алгоритму поиска непересекающихся множеств!
Задачка состоит в определении момента появления "островков" в трехмерной матрице n*m*z. Островком считается множество элементов, имеющие соседей по горизонтали, вертикали или глубине. Изначально цельный островок произвольной формы начинает отсекаться по кусочкам, требуется определить момент, когда островков становится больше одного.

На изображении приведен пример одного острова(слева) и момент возникновения двух островов (справа) по удаления элементов посередине.

Мне на ум приходит алгоритм обхода матрицы в трех циклах, при встрече элемента острова проходим через соседей по всему острову тем самым выделяя его. В матрице дублере, например, его можно удалять, чтобы не мешал дальше.

Вопрос, можно ли быстрее?! Сижу и ломаю голову, как применить графы, так как нам известно состояние системы до разделения и мы заранее можем оставить дерево острова до момента деления.

Post's attachments

остров1.JPG 128.53 kb, file has never been downloaded. 

You don't have the permssions to download the attachments of this post.