Подробнее
Что нужно для старта
- Базовые навыки Python: типы данных, циклы, функции, работа со stdin/stdout
- Базовое представление об оценке сложности (O‑нотация)
- Минимум математики: арифметика, массивы/матрицы; базовые понятия о графах приветствуются
- Ничего устанавливать не требуется: всё выполняется в браузере
Что вы получите
- Реализовывать классические алгоритмы: поиск, сортировки, графы, деревья, динамическое программирование, матрицы
- Работать со структурами данных: стек, очередь, хеш-таблица, бинарная куча, связный список
- Применять базовые методы теории чисел и шифрования: НОД, факторизация, простота, решето, Цезарь, Виженер, XOR, упрощённая RSA
- Использовать базовые алгоритмы ML: линейная/логистическая регрессии, kNN, линейный SVM, градиентный спуск
- Писать корректный код под stdin/stdout, проходящий тесты; оценивать асимптотику решений
- Следовать шаблону “теория → алгоритм → пример → реализация → автопроверка”
Для кого этот курс
- 👍Начинающие и продолжающие разработчики, желающие систематизировать алгоритмическую базу
- 👍Студенты и слушатели, готовящиеся к собеседованиям и алгоритмическим задачам
- 👍Преподаватели/менторы — как набор тщательно проверяемых практик с автотестами
Программа курса
- Линейный поиск
- Бинарный поиск
- Поиск в ширину (BFS)
- Поиск в глубину (DFS)
- Сортировка пузырьком (Bubble Sort)
- Сортировка выбором (Selection Sort)
- Сортировка вставками (Insertion Sort)
- Быстрая сортировка (Quick Sort)
- Сортировка слиянием (Merge Sort)
- Пирамидальная сортировка (Heap Sort)
- Подсчётная сортировка (Counting Sort)
- Радикс-сортировка (Radix Sort)
- Поиск подмассива
- Нахождение максимального/минимального элемента
- Удаление дубликатов
- Перестановки и комбинации
- Работа со слайсами и срезами
- Максимум суммы подмассива (алгоритм Кадана)
- Поиск подстроки (алгоритм Кнута-Морриса-Пратта, KMP)
- Обращение строки
- Палиндромы
- Удаление лишних пробелов
- Регулярные выражения
- Сжатие строк
- Обход графа (BFS и DFS)
- Алгоритм Дейкстры (нахождение кратчайшего пути)
- Минимальное остовное дерево (алгоритмы Прима и Крускала)
- Определение циклов
- Топологическая сортировка
- Обход дерева (in-order, pre-order, post-order)
- Высота дерева
- Симметричность дерева
- Поиск в бинарном дереве
- Строительство дерева из обходов
- Задача о рюкзаке
- Наибольшая общая подпоследовательность (LCS)
- Наибольшая возрастающая подпоследовательность (LIS)
- Вычисление чисел Фибоначчи с памятью
- Построение оптимальных решений
- Транспонирование матрицы
- Умножение матриц
- Поиск минимального/максимального элемента
- Поиск пути в матрице (лабиринт)
- Вывод спирали матрицы
- Реализация стека и очереди
- Хэширование и хеш-таблицы
- Работа с бинарными кучами
- Связанные списки: удаление, вставка, обращение
- НОД (алгоритм Евклида)
- Разложение на множители
- Проверка на простоту
- Генерация случайных простых чисел
- Числа Фибоначчи
- Решето Эратосфена
- Шифр Цезаря
- Шифр Виженера
- XOR-шифрование
- RSA (упрощённая реализация)
- Линейная регрессия
- Логистическая регрессия
- k-ближайших соседей (kNN)
- Метод опорных векторов (SVM)
- Градиентный спуск
01Алгоритмы поиска
- Линейный поиск
- Бинарный поиск
- Поиск в ширину (BFS)
- Поиск в глубину (DFS)
02Алгоритмы сортировки
- Сортировка пузырьком (Bubble Sort)
- Сортировка выбором (Selection Sort)
- Сортировка вставками (Insertion Sort)
- Быстрая сортировка (Quick Sort)
- Сортировка слиянием (Merge Sort)
- Пирамидальная сортировка (Heap Sort)
- Подсчётная сортировка (Counting Sort)
- Радикс-сортировка (Radix Sort)
03Алгоритмы работы с массивами
- Поиск подмассива
- Нахождение максимального/минимального элемента
- Удаление дубликатов
- Перестановки и комбинации
- Работа со слайсами и срезами
- Максимум суммы подмассива (алгоритм Кадана)
04Алгоритмы работы со строками
- Поиск подстроки (алгоритм Кнута-Морриса-Пратта, KMP)
- Обращение строки
- Палиндромы
- Удаление лишних пробелов
- Регулярные выражения
- Сжатие строк
05Алгоритмы работы с графами
- Обход графа (BFS и DFS)
- Алгоритм Дейкстры (нахождение кратчайшего пути)
- Минимальное остовное дерево (алгоритмы Прима и Крускала)
- Определение циклов
- Топологическая сортировка
06Алгоритмы работы с деревьями
- Обход дерева (in-order, pre-order, post-order)
- Высота дерева
- Симметричность дерева
- Поиск в бинарном дереве
- Строительство дерева из обходов
07Алгоритмы динамического программирования
- Задача о рюкзаке
- Наибольшая общая подпоследовательность (LCS)
- Наибольшая возрастающая подпоследовательность (LIS)
- Вычисление чисел Фибоначчи с памятью
- Построение оптимальных решений
08Алгоритмы работы с матрицами
- Транспонирование матрицы
- Умножение матриц
- Поиск минимального/максимального элемента
- Поиск пути в матрице (лабиринт)
- Вывод спирали матрицы
09Алгоритмы работы с структурами данных
- Реализация стека и очереди
- Хэширование и хеш-таблицы
- Работа с бинарными кучами
- Связанные списки: удаление, вставка, обращение
10Алгоритмы теории чисел
- НОД (алгоритм Евклида)
- Разложение на множители
- Проверка на простоту
- Генерация случайных простых чисел
- Числа Фибоначчи
- Решето Эратосфена
11Алгоритмы шифрования
- Шифр Цезаря
- Шифр Виженера
- XOR-шифрование
- RSA (упрощённая реализация)
12Алгоритмы машинного обучения (базовые)
- Линейная регрессия
- Логистическая регрессия
- k-ближайших соседей (kNN)
- Метод опорных векторов (SVM)
- Градиентный спуск
Отзывы о курсе
Оставьте отзыв
Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.
Оставьте заявку
Консультант ответит на вопросы о курсе «Фундаментальные алгоритмы на Python» и поможет разобраться в деталях обучения.
Нажимая кнопку, вы даете согласие на обработку персональных данных
Информация обновлена 3 сентября 2026 г.

Stepik 
















