Алгоритмы

Структуры данных, сортировки, графы и динамическое программирование

1

Big O Notation: оценка сложности алгоритмов

Начальный

Что такое Big O, как оценивать временную и пространственную сложность алгоритмов. O(1), O(n), O(log n), O(n²) — с примерами на JavaScript.

10 мин
2

Алгоритмы с массивами и строками: разворот, палиндром, анаграмма, скользящее окно

Начальный

Разбор популярных алгоритмических задач с массивами и строками на JavaScript: разворот строки, проверка на палиндром, анаграммы, метод скользящего окна (sliding window).

14 мин
3

Хэш-таблицы в JavaScript: Map, Object, Set — подсчёт, группировка, Two Sum

Начальный

Как работают хэш-таблицы, когда использовать Map, Object и Set. Разбор задач: подсчёт элементов, группировка, Two Sum, первый неповторяющийся символ.

12 мин
4

Стек и очередь: реализация и задачи на JavaScript

Начальный

Что такое стек (LIFO) и очередь (FIFO), как реализовать на JavaScript. Разбор задач: правильные скобки, обход в ширину (BFS), минимальный элемент в стеке.

12 мин
5

Связные списки: односвязный, двусвязный, reverse, cycle detection

Средний

Реализация связных списков на JavaScript: односвязный и двусвязный. Разворот списка, обнаружение цикла (алгоритм Флойда), удаление n-го элемента с конца.

14 мин
6

Деревья: бинарное дерево, BFS, DFS, обходы

Средний

Структуры данных дерево и бинарное дерево на JavaScript. Обходы: inorder, preorder, postorder, BFS. Максимальная глубина, проверка BST, поиск пути.

15 мин
7

Графы: adjacency list, BFS, DFS, кратчайший путь

Средний

Представление графов, обходы BFS и DFS, поиск кратчайшего пути (алгоритм Дейкстры), топологическая сортировка. Примеры на JavaScript.

14 мин
8

Сортировки: bubble sort, quick sort, merge sort — когда что использовать

Средний

Алгоритмы сортировки на JavaScript: пузырьком, быстрая сортировка, сортировка слиянием. Сложность, стабильность, когда выбирать каждый алгоритм.

12 мин
9

Бинарный поиск: алгоритм и вариации

Начальный

Бинарный поиск в отсортированном массиве на JavaScript: классический алгоритм, поиск первого/последнего вхождения, поиск позиции для вставки, поиск в rotated array.

10 мин
10

Рекурсия: базовый случай, стек вызовов, хвостовая рекурсия

Начальный

Что такое рекурсия, как работает стек вызовов, когда рекурсия полезна. Базовый случай, хвостовая рекурсия, типичные задачи: факториал, фибоначчи, обход дерева.

12 мин
11

Динамическое программирование: memoization и tabulation

Средний

Что такое динамическое программирование (DP), подходы memoization (сверху вниз) и tabulation (снизу вверх). Задачи: числа Фибоначчи, прыжки по лестнице, рюкзак, подпоследовательности.

15 мин
12

Жадные алгоритмы и задача о рюкзаке

Средний

Что такое жадные алгоритмы, когда они дают оптимальное решение. Разбор задач: размен монет, задача о рюкзаке, интервалы, Huffman coding, Huffman, оптимизация.

12 мин