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.
recursi0n: Одним и тем же словом называют разные вещи.
>Cтруктуры данных, которые я могу вызвать так же, как и любую другую коллекцию
Да, есть такие docs.oracle.com/javase/7/docs/api/java/util/Stack.html.
>низкоуровневые части оперативной памяти
В частности call stack, который вы можете видеть в отладчике тоже называют стек.
>Т.е, получается, что мы программируем уже не для процессора, а для оперативки
Программируем мы над некоторой абстракцией для памяти, процессора, диска. Реальное железо достаточно сложное, а высокоуровневые языки стараются скрыть эту сложность.
programmingexamples.wikidot.com/qt-qpainter-example.