Структуры данных и алгоритмы. Оглавление

January 31, 2007

На этой странице размещены материалы, которые я написал несколько лет назад. Стимулом к написанию стали события, когда я прочитал запоем несколько интересных книжек по посвященных основам программирования, алгоритмике и построению грамотных структур данных. Мне стало обидно, что в то время, когда я учился программированию, меня (вообще, наш поток) третировали дурацкими задачами, совершенно не развивавшими культуру программирования, не уделявшими внимания вопросам грамотного проектирования кода, оптимизации. Многие интересные вещи связанные с комбинаторикой, графами были пройдены крайне мерзко (я до сих пор удивляюсь, почему я попал в мир программирования). Запал энтузиазма горел несколько месяцев, в течении которых я писал эти учебные материалы, планируя то, как я мог бы организовать подобный курс.

Спустя годы я смотрю на результаты тех лет несколько скептически, появилось достаточное количество книг, статей, написанных лучше и более системно. С другой стороны я горжусь проделанной работой. Все же текст в 200 000 знаков (многие из которых переписаны наново) - это чувствительно (можно было бы даже книжку издать - тонюсенькую, правда).

Данные материалы апробированы на всего двух группах, в промежутке между которыми я вносил крупные изменения. В любом случае я надеюсь, что кому-нибудь данные материалы пригодятся.

Теория



Введение. Анализ алгоритмов. Качество. Оценка временных затрат

Работа с массивами. Сортировки и поиск. Простые алгоритмы сортировок

Усовершенствованные алгоритмы сортировки

Рекурсия

Динамические структуры данных

Общие правила и рекомендации к разработке собственных контейнерных структур данных

Деревья. Основные алгоритмы над деревьями

Графы и их основные сферы применения в информатике

Классические задачи программирования

Порождение и перебор комбинаторных объектов

Рекуррентные уравнения. Динамическое программирование

Лабораторные и практические работы



Простейшие алгоритмы сортировок (сортировка методом пузырька, вставки, выборки). Часть 1

Простейшие алгоритмы сортировок (сортировка методом пузырька, вставки, выборки). Часть 2

Усовершенствованные сортировки

Поиск и усовершенствованные алгоритмы сортировки

Основы рекурсии

Рекурсия и исключения

Динамические структуры данных. Основы

Динамические структуры данных. Стек. Очередь

Двунаправленные динамические списки и общие принципы проектирования контейнеров

Контейнеры

Деревья

Вопросы к зачету