Подробнее
Что нужно для старта
- Хорошее знание Python, включая ООП.
Что вы получите
- Определять сложность алгоритмов.
- Оптимизировать алгоритмы и код.
- Выбирать оптимальные структуры под бизнес-задачи.
- Проектировать рекурсивные алгоритмы на Python.
- Оптимизировать рекурсивные функции.
- Строить и обходить деревья и графы.
- Сортировать массивы и связные списки.
- Быстро искать данные в массивах, деревьях и тексте.
- Искать и генерировать большие простые числа.
- Более эффективно использовать Python.
- Работать с хэш-таблицами, словарями и ассоциативными массивами.
- Шифровать и сжимать данные.
- Генерировать и обмениваться ключами шифрования.
- Сортировать данные, в том числе по нескольким критериям.
- Использовать комбинаторые алгоритмы и функции.
- Перебирать и оптимизировать деревья.
Для кого этот курс
- Программистам на Python
- Научитесь писать эффективные и быстрые алгоритмы на Питоне. Значительно расширите горизонты своих навыков. Сможете лучше подготовиться к собеседованиям в серьезные компании.
- Программистам самоучкам
- Восполните недостающие навыки по алгоритмизации. Научитесь писать быстрый код и использовать эффективные структуры данных для решения бизнес-задач.
Программа курса
- Введение в курс
- Понятие алгоритма
- Сложные проценты
- Линейный поиск
- Сортировка выбором
- Сложность алгоритмов
- Сложность алгоритмов, часть 2
- Задания
- Связные списки
- Добавление вставка и удаление ячеек
- Двунаправленные связные списки
- Сортировка связных списков
- Массивы
- Многомерные массивы
- Треугольные массивы
- Стек
- Очередь
- Очередь с приоритетом и дек
- Задания на связные списки
- Задания на массивы
- Задания на стеки
- Задания на очереди
- Общее о сортировках
- Пузырьковая сортировка
- Сортировка вставками
- Пирамидальная сортировка (кучей)
- Пирамидальная сортировка, часть 2
- Быстрая сортировка
- Сложность быстрой сортировки
- Быстрая сортировка на месте
- Сортировка слиянием
- Сортировка подсчетом
- Блочная сортировка
- Устойчивость сортировок
- Сортировка по нескольким полям
- Задания
- Бинарный поиск
- Интерполяционный поиск
- Задания
- Генерирование случайных чисел
- Наибольший общий делитель
- Возведение в степень
- Решето Эратосфена
- Проверка на простоту
- Поиск простых множителей
- Численные методы
- Задания
- Основы хэш-таблиц
- Прямое связывание
- Открытая адресация
- Удаление элементов из хэш-таблицы
- Квадратичное пробирование
- Квадратичное пробирование, часть 2
- Двойное хэширование
- Упорядоченное хэширование
- Фильтры Блума
- Задания
- Понимание рекурсии
- Понимание рекурсии, часть 2
- Факториал
- Числа Фибоначчи
- Ханойская башня
- Задача о 8 ферзях
- Оптимизация задачи о восьми ферзях
- Сочетания
- Размещения
- Оптимизация рекурсии
- Кривая Коха
- Задания
- Введение в деревья
- Обход деревьев
- Обход деревьев в ширину
- Добавление элементов в бинарные деревья поиска
- Поиск по двоичному дереву
- Удаление вершин из двоичного дерева
- Прошитые бинарные деревья
- Деревья квадрантов
- АВЛ-деревья
- 2-3 деревья
- B-деревья
- Красно-черные деревья
- Задания
- Введение в деревья принятия решений
- Метод полного перебора
- Метод ветвей и границ
- Случайный поиск
- Локальный поиск
- Имитация отжига
- Поиск максимума
- Сравнение эвристических алгоритмов
- Энтропия
- Энтропия и деревья принятия решений
- Алгоритм ID3
- Задания
- Введение в графы
- Способы представления графов
- Рекурсивный обход в глубину
- Обход в глубину с помощью стека
- Обход в ширину
- Топологическая сортировка
- Топологическая сортировка на практике
- Поиск циклов
- Поиск критического пути
- Критические пути на практике
- Поиск компонент связности
- Поиск компонент сильной связности
- Поиск мостов
- Остовные деревья
- Минимальное остовное дерево
- Алгоритм Прима
- Алгоритм Краскала
- Алгоритм Дейскстры
- Алгоритм Беллмана - Форда
- Кратчайшие пути на практике
- Задания
- Простейший поиск подстроки
- Суффиксы, префиксы, грани
- Префикс-функция
- Алгоритм Кнута - Морриса - Пратта
- Алгоритм Бойера - Мура
- Алгоритм Бойера - Мура на практике
- Суффиксные деревья
- Поиск по суффиксному дереву
- Построение суффиксного дерева
- Скорость алгоритмов поиска текста
- Задания
- Табличная перестановка
- Перестановка столбцов
- Шифры Цезаря и Виженера
- Метод одноразовых блокнотов
- Блочные шифры и SP-сети
- Обмен ключам по методу Диффи-Хеллмана
- Шифрование с открытым ключом
- Криптосистема RSA
- Гибридные криптосистемы
- Хэширование
- Применение хэширования в криптографии
- Луковая маршрутизация
- Задания
- Введение в сжатие
- Кодирование длин серий
- Код Хаффмана
- Сжатие Лемпеля - Зива - Велча
- Сжатие с потерями
- Задания
01Введение в алгоритмы
- Введение в курс
- Понятие алгоритма
- Сложные проценты
- Линейный поиск
- Сортировка выбором
- Сложность алгоритмов
- Сложность алгоритмов, часть 2
- Задания
02Структуры данных
- Связные списки
- Добавление вставка и удаление ячеек
- Двунаправленные связные списки
- Сортировка связных списков
- Массивы
- Многомерные массивы
- Треугольные массивы
- Стек
- Очередь
- Очередь с приоритетом и дек
- Задания на связные списки
- Задания на массивы
- Задания на стеки
- Задания на очереди
03Сортировка
- Общее о сортировках
- Пузырьковая сортировка
- Сортировка вставками
- Пирамидальная сортировка (кучей)
- Пирамидальная сортировка, часть 2
- Быстрая сортировка
- Сложность быстрой сортировки
- Быстрая сортировка на месте
- Сортировка слиянием
- Сортировка подсчетом
- Блочная сортировка
- Устойчивость сортировок
- Сортировка по нескольким полям
- Задания
04Поиск
- Бинарный поиск
- Интерполяционный поиск
- Задания
05Численные алгоритмы
- Генерирование случайных чисел
- Наибольший общий делитель
- Возведение в степень
- Решето Эратосфена
- Проверка на простоту
- Поиск простых множителей
- Численные методы
- Задания
06Хэширование
- Основы хэш-таблиц
- Прямое связывание
- Открытая адресация
- Удаление элементов из хэш-таблицы
- Квадратичное пробирование
- Квадратичное пробирование, часть 2
- Двойное хэширование
- Упорядоченное хэширование
- Фильтры Блума
- Задания
07Рекурсия
- Понимание рекурсии
- Понимание рекурсии, часть 2
- Факториал
- Числа Фибоначчи
- Ханойская башня
- Задача о 8 ферзях
- Оптимизация задачи о восьми ферзях
- Сочетания
- Размещения
- Оптимизация рекурсии
- Кривая Коха
- Задания
08Деревья
- Введение в деревья
- Обход деревьев
- Обход деревьев в ширину
- Добавление элементов в бинарные деревья поиска
- Поиск по двоичному дереву
- Удаление вершин из двоичного дерева
- Прошитые бинарные деревья
- Деревья квадрантов
- АВЛ-деревья
- 2-3 деревья
- B-деревья
- Красно-черные деревья
- Задания
09Деревья принятия решения
- Введение в деревья принятия решений
- Метод полного перебора
- Метод ветвей и границ
- Случайный поиск
- Локальный поиск
- Имитация отжига
- Поиск максимума
- Сравнение эвристических алгоритмов
- Энтропия
- Энтропия и деревья принятия решений
- Алгоритм ID3
- Задания
10Алгоритмы на графах
- Введение в графы
- Способы представления графов
- Рекурсивный обход в глубину
- Обход в глубину с помощью стека
- Обход в ширину
- Топологическая сортировка
- Топологическая сортировка на практике
- Поиск циклов
- Поиск критического пути
- Критические пути на практике
- Поиск компонент связности
- Поиск компонент сильной связности
- Поиск мостов
- Остовные деревья
- Минимальное остовное дерево
- Алгоритм Прима
- Алгоритм Краскала
- Алгоритм Дейскстры
- Алгоритм Беллмана - Форда
- Кратчайшие пути на практике
- Задания
11Строковые алгоритмы
- Простейший поиск подстроки
- Суффиксы, префиксы, грани
- Префикс-функция
- Алгоритм Кнута - Морриса - Пратта
- Алгоритм Бойера - Мура
- Алгоритм Бойера - Мура на практике
- Суффиксные деревья
- Поиск по суффиксному дереву
- Построение суффиксного дерева
- Скорость алгоритмов поиска текста
- Задания
12Крипотография
- Табличная перестановка
- Перестановка столбцов
- Шифры Цезаря и Виженера
- Метод одноразовых блокнотов
- Блочные шифры и SP-сети
- Обмен ключам по методу Диффи-Хеллмана
- Шифрование с открытым ключом
- Криптосистема RSA
- Гибридные криптосистемы
- Хэширование
- Применение хэширования в криптографии
- Луковая маршрутизация
- Задания
13Сжатие
- Введение в сжатие
- Кодирование длин серий
- Код Хаффмана
- Сжатие Лемпеля - Зива - Велча
- Сжатие с потерями
- Задания
Shultais Education
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Алгоритмы на Python» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 3 сентября 2026 г.

Stepik 

















