Здравствуйте, Юрий Лазарев, Вы писали:
ЮЛ>Не было предложено ни одного конкретного способа сократить длину (кроме бесчисленных пожеланий, которых при желании я и сам мог бы навалить не одну простыню). Отсюда можно сделать вывод, что вполне существуют в природе задачи, по существу не укладывающиеся в прокрустово ложе ИТ-религии, или сокращение которых займет время, сравнимое с самой разработкой и сопровождением. Фанаты формализма в таком случае просто отбрасывают задачу как "нерешаемую", хотя нерешаема она только из-за зашоренности религией (т.е. элементарного невежества).
Вполне можно представить ситуацию в которой допустимы функции по 1400 строк. Например при генерации хитрого автомата или при использовании какого-нибудь чудного компилятора двадцатилетней давности.
Но никакого цельного/неделимого алгоритма в PseudoProcessAcceptedData нет и в помине. Например:
1. Как уже заметили выше, построение графа из несвязанных отрезков (заданных координатами) — это вполне замкнутый и отдельный алгоритм, который элементарно выносится в отдельную функцию, которую даже можно использовать повторно в других местах.
2. Сразу после построения графа, идёт поиск компонент связности на базе disjoint-set — это также прекрасно оформляется в виде отдельного и цельного алгоритма. Кстати, судя по всему (избыточные условия, структуры данных и прочие торчащие уши), этот каменный лисапед рождался в муках — почему было просто не использовать поиск в глубину/ширину?
P.S. Все релевантные алгоритмы и АТД уже реализованны в Boost.Graph:
* поиск компонент связности на базе disjoint-set
http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/incremental_components.html
* disjoint_sets
http://www.boost.org/doc/libs/1_57_0/libs/disjoint_sets/disjoint_sets.html
* поиск компонент связности на базе DFS
http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/connected_components.html
* DFS
http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/depth_first_search.html
* BFS
http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/breadth_first_search.html
* обход граней планарного графа
http://www.boost.org/doc/libs/1_57_0/libs/graph/doc/planar_face_traversal.html
Перед началом разработки "уникального" и "неделимого", был ли произведён поиск готовых решений?