Алгоритмы и структуры данных

Эффективные решения вычислительных задач

Без знаний алгоритмов начинающий программист часто изобретает велосипед вместо того, чтобы решать задачу уже проверенными способами. Современные языки программирования всячески облегчают жизнь разработчикам, выполняя множество “грязной” работы. С одной стороны, это хорошо, но с другой - многие программисты перестают понимать, как на самом деле работает компьютер, или имеют весьма поверхностное представление об алгоритмах и структурах данных, лежащих в основе используемых ими решений.

На курсе мы подробно исследуем язык C - это превосходная возможность “пощупать” механизмы, которые лежат в основе современных фреймворков.

Чему Вы научитесь

  • Основам программирования на языке C;
  • Структурам данных и алгоритмам, которые лежат в основе их работы;
  • Общим подходам и полезным методикам для решения сложных задач;
  • Инструментам оценки сложности решаемых задач;
  • Создавать консольные программы на языке C в среде разработки QT;
  • Создавать программы, используя собственные алгоритмы;
  • Создавать собственные структуры данных: стеки, списки, деревья и др.;
  • Оценивать производительность программ;
  • Использовать “незащищённый” режим работы с памятью, основанный на указателях;
  • Динамически выделять и освобождать память;
  • Использовать рекурсию.

Что Вы получите

Видеозаписи всех онлайн-занятий
Методички и домашние задания
Общение с одногруппниками
Сертификат об окончании обучения
  • 1
    Урок 1. Простые алгоритмы
    Введение в C. Структуры. Алгоритмы.
  • 2
    Урок 2. Асимптотическая сложность алгоритма. Рекурсия
    Асимптотическая сложность алгоритма. Рекурсивный перебор. Ханойская башня.
  • 3
    Урок 3. Поиск в массиве. Простые сортировки
    Поиск в одномерном массиве .Интерполяционный поиск. Сортировка массива.
  • 4
    Урок 4. Динамическое программирование. Поиск возвратом
    Наибольшая общая подпоследовательность Динамическое программирование. Поиск с возвратом. Задача о восьми ферзях.
  • 5
    Урок 5. Динамические структуры данных
    Стек, очередь. Создание стека с использованием массива. Динамические структуры данных.
  • 6
    Урок 6. Деревья
    Двоичные деревья поиска. Хеш-функция. MD5. Хеш-таблицы
  • 7
    Урок 7. Графы. Алгоритмы на графах.
    Графы, обход графа в ширину и глубину. Волновой алгоритм. “Жадные алгоритмы”.
  • 8
    Урок 8. Сложные сортировки
    Сортировка Хоара (Quick sort). Пирамидальная сортировка (Heap sort) Сортировка слиянием (Merge sort). Сортировка подсчетом (CountingSort). Алгоритм со списком (pigeonhole sorting). Блочная сортировка.
  • Нажимая на кнопку "Добавить в корзину", Вы принимаете условия договора оферты.

После обучения мы предлагаем всем выпускникам оценить программу курса и преподавателя, а также при желании оставить отзыв.
Все отзывы и оценки мы публикуем без изменений.