Алгоритмы

Алгоритмы и структуры данных на C++: сортировки, поиск, обходы, разбор классических задач с оценкой сложности. Каждый алгоритм — с реализацией, пояснением шагов и примерами применения в реальном коде.

Алгоритмы

Strategy: подстановка алгоритмов во время выполнения

Введение В этой статье разберём паттерн по существу, для случаев, где он РЕАЛЬНО оправдан: когда конкретный алгоритм для выполнения определённой задачи должен выбираться или изменяться во время выполнения,…

Алгоритмы

Графы: представление, обход (BFS/DFS), практическое применение

Введение После линейных структур и деревьев (частный случай графа без циклов) переходим к графам в общем виде — структуре, моделирующей произвольные связи между сущностями, естественной для широкого круга…

Алгоритмы

Деревья: бинарные деревья поиска, балансировка, map/set на их основе

Введение В статьях SQL-цикла упоминала B-tree индексы СУБД — в этой статье разберём похожую по духу, но более общую структуру данных программирования: бинарные деревья поиска, лежащие в основе…

Алгоритмы

Хеш-таблицы: unordered_map/unordered_set, коллизии, производительность

Введение QSet для демонстрации линейной сложности поиска дубликатов — в этой статье разберём хеш-таблицы (std::unordered_map/unordered_set, QHash/QSet) подробнее: принцип работы через хеш-функцию, проблему коллизий, и практические последствия для производительности.…

STL

Структуры данных STL изнутри: vector, list, deque — когда что выбрать

Введение Основной цикл статей уже использовал std::vector/QVector без подробного разбора внутреннего устройства — в этой статье разберём, как реализованы основные линейные контейнеры STL изнутри, и какая внутренняя структура…

Алгоритмы

Обзор сложности алгоритмов: Big O на практике для C++ разработчика

Введение Все предыдущие циклы статей писали код, работающий корректно — но не всегда явно анализировали, насколько быстро этот код работает при росте объёма данных. В этой статье разберём…

Алгоритмы

Итоговый мини-проект: применение алгоритмов для оптимизации реального Qt-приложения

Введение В заключительной статье цикла, и всего плана статей в его текущем объёме, соберём итоговый проект, демонстрирующий применение разобранных алгоритмов и структур данных для оптимизации реалистичной, практической задачи…