Алгоритмы для программистов

Информация о курсе:


Стоимость курса: 4 000 грн

Длительность курса:
30 часов
Вечерние группы: 12 занятий х 2,5 часа
Субботние группы: 7 занятий х 4,25 часа

Дата начала:


уточняйте дату по телелефону:
+38 (044) 362-05-77 
+38 (066) 060-03-26
+38 (068) 934-59-24

Записаться в группу

 

Алгоритмы для программистов (и не только). Сложные алгоритмы - простыми словами.
Каждый программист обязан знать хотя бы десяток самых базовых алгоритмов.
Если вы пишете программы - значит вы используете алгоритмы. Нет необходимости изобретать велосипед - многие поколения математиков давно разработали множество алгоритмов для различных целей. 

 

  • Оценка сложности алгоритмов. Основные обозначения. Асимптотическая оценка сложности. Классификация алгоритмов.
  • Алгоритмы сортировки. Сортировка пузырьком. Сортировка вставками. Быстрая сортировка. Сортировка слиянием. Пирамидальная сортировка. Оценка сложности алгоритмов сортировок.
  • Основные структуры данных. Односвязный список. Двусвязный список. Очередь. Стек. Реализация основных операций для списков.
  • Деревья. Бинарные деревья. Сбалансированные и несбалансированные деревья. Представление деревьев в виде массива и связанной структуры. Рекурсивные и не рекурсивные алгоритмы обхода деревьев. Бинарное дерево поиска AVL дерево. Красно-черное дерево. Пример использования деревьев: алгоритм Хафманна.
  • Динамическое программирование. Основные алгоритмы динамического программирования.
  • Жадные алгоритмы. Задача о размене монет. Задача о рюкзаке.
  • Графы. Понятие графа. Представление графов. Связанный и несвязанный граф. Компоненты связанности. Остовное дерево. Применение графов.
  • Основные алгоритмы на графах. Поиск в ширину. Поиск минимального пути (алгоритм Дейкстры). Поиск в глубину. Топологическая сортировка. Поиск мостов в графе. Циклы в графе.
  • Генетические алгоритмы. Использование и реализация генетических алгоритмов.
  • Элементы криптографии. Алгоритм RSA. Алгоритм Эль-Гамаль. Атаки на криптографические алгоритмы.
  • Параллельное программирование. Построение алгоритмов работающих в многопоточной среде.