Re: F# и уменьшение сложности алгоритма поиска пересечений всех
От: samius Япония http://sams-tricks.blogspot.com
Дата: 17.02.20 18:12
Оценка:
Здравствуйте, zverjuga, Вы писали:

Z>есть следующая задачка. найти все возможные пересечения в списке, которые содержит в себе "дороги", то есть объекты, состоящие из координат. нарисовал координатную сетку 8х8 и на ней 4 горизонтальные и 3 вертикальные линии. в коде это выглядит как то так


Z>отсюда возникает вопрос, как можно все таки избежать мемоизации и одновременно не просчитывать один и тот же путь дважды?

Z>ну и в принципе? как можно сделать алгоритм менее сложным.

Насколько я понял задачу, нужно просто перейти от списка точек в дороге к списку дорог, проходящих через точку. Т.е. для каждой точки каждой дороги, посмотреть, зарегистрирована ли она уже в словаре, и если нет, то добавить точку с дорогой, а если да, то добавить дорогу к списку дорог, проходящей через точку. Сложность линейная, если допустить что добавление и проверка точки в словаре имеют константную сложность.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.