dynamic_cast не будет кидать исключений, а вернет 0 если не может скастить. Ну и еще стандартный вариант -- добавить в Wall виртуальную функцию возвращающую тип стенки как значение некоторого enum.
JunPupil: У вас должна быть дополнительная информация. Например для сетки -- каждая вершина это ячейка с координатами x, y. Расстояние до цели r = sqrt((x - x_end)^2 + (y - y_end)^2). Корень можно выкинуть из-за его монотонности. В случае с дорожными картами аналогично есть координаты вершин.
JunPupil: A star очень похож на дейкстру. Та же очередь, только приоритетная. В том смысле что мы сначала пытаемся посмотреть на те вершины, которые ближе к нашей цели.
Обратите внимание, что у этих книг есть несколько изданий, которые достаточно сильно отличаются. В новых добавляется информация про актуальные технологии.
Олег Цилюрик: https://ru.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D...
Для сортировки (не обязательно на месте) требуется не менее n*log(n) сравнений.
Перестановка элементов в списке это swap 2 указателей. Не так и много (быстрее выделения памяти), и не влияет на асимптотическую сложность алгоритма.
Короче говоря, я считаю что предложенный вами алгоритм рабочий. Работает за O(n^2). По производительности не сильно отличается от обычной квадратичной сортировки, тут надо делать тесты. На большом объеме данных проиграет merge sort.
можно написать merge sort, который работает за n*log(n). Сделать асимптотически быстрее невозможно (если мы не знаем про данные что-то еще, так чтобы прокатила сортировка подсчетом, например).
Олег Цилюрик: Простите, а выбирать максимальный, максимальный из оставшихся, и.т.д. вы считаете бесплатно? Каждая из операций поиска O(n). Для n штук -- n^2. За O(n) невозможно даже теоретически получить сортировку.
Minot: Судя по вопросу, вы обдумываете поступление. Рекомендую вам не забывать про подготовку к ЕГЭ по русскому языку (английский тоже важен, вне зависимости от того где вы хотите работать). Как это не печально, но с таким количеством ошибок, потенциальный работодатель вероятно даже не дочитает ваше письмо.
Наличие диплома -- один из критериев при выдаче рабочих виз. Опыт работы тоже очень важен.
Андрей Яндуганов: Тогда есть 2 пути. Первый -- использовать list, второй -- скопировать Organisms и итерироваться по копии, внося изменения в основной массив (получается уже заморочено). Еще можно посмотреть на map или set.