На этом коротком уроке мы рассмотрим два способа оптимизации нашей программы, в результате которых работать она станет просто молниеносно!!!
Дата отправки отчёта:
12 января 2016 г.
Задание выполнено: за
35 мин.
Чему научился:
Оптимизировать алгоритм поиска траектории движения для игры Сокобан.
Что было сложным:
Сложностей не было.
Комментарии:
Да, результат впечатляет, хорошая оптимизация поиска. На первом скриншоте представлен результат работы алгоритма с использованием List<>. На втором скриншоте - результат работы оптимизированного алгоритма, с использованием четырехмерного массива. В первом случае время решения 69 мс, во втором - 4 мс.
Научился: Теперь мне думается, что коллекции не так эффективны ..... как хотелось бы.
Хитрый получился массив :) Классно придумано :) Трудности: Понять, что наши координаты - это номера индексов у массива :)
Изначально думается: "Ну как булевский массив может хранить координаты?" )))) А вообще странно ... поиск по индексам, по идее, должен быть такой же моментальный, как и мы обращаемся к массиву напрямую....
Научился: Использовать 4-мерные массивы, он представляет собой перечень комбинаций положений мышки и яблока относительно друг друга (x, y),a
мы не перебираем все варианты (как было до этого со списком List и Dictionary)
При использовании Dictionary было 12000 мс. После применения массива время уменьшилось до 7-11 мс.