Дан массив фигур (для простоты — квадраты). Нужно найти в этом массиве подмассив пересекающихся фигур и заменить их усредненными координатами.
Сейчас делаю так:
//1) Все фигуры помечаю как пересекающимися (тоесть, заполняю их в конечный подмассив)
for (figure = figures)
{
retVal.Add(figure);
}
//2) В цикле пробегаю по подмассиву, убираю пересекающиеся и
for (figure1 = figures)
{
for (figure2 = figures)
{
if (/*не нужно сравнивать фигуру саму с собой*/ figure1 != figure2 and IsIntersect(figure1, figure2))
retVal.Add(figure);
}
}
Проблема в том, что все это тормозит. Как оптимизировать данный алгоритм?