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

Туда, где начинается настоящий CS. Асимптотика, массивы, списки, кучи, сортировки, бинарный поиск, префиксные суммы, дерево Фенвика, динамическое программирование и работа со строками (префикс-функция, Z, Манакер). Для тех, кто уже пишет код, но хочет делать это быстро и предсказуемо.
Начальный уровень

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

  • Оценивать время работы алгоритмов через O-большое и не бояться асимптотики
  • Выбирать правильную структуру данных под задачу (массив, список, дерево, куча)
  • Реализовывать сортировки и понимать, какая когда быстрее
  • Применять бинарный поиск и бинарный поиск по ответу
  • Считать суммы на отрезке за O(1) через префиксные суммы
  • Использовать дерево Фенвика для запросов с обновлениями
  • Писать простейшее динамическое программирование (и отличать его от жадных алгоритмов)
  • Работать со строками через префикс-функцию, Z-функцию и алгоритм Манакера

О курсе

Это не курс «напиши десять сортировок и успокойся». Это курс, после которого вы перестанете писать вложенные циклы там, где можно за O(n), и начнёте замечать, почему ваша программа тормозит на больших данных. Разбираем всё от базовых структур до алгоритмов на строках — ровно столько, чтобы пройти техническое собеседование на junior+ и не вылететь на первой же задаче про сложность.

Для кого этот курс

Самоучки, которые пишут код, но никогда не задумывались о скорости его работы Студенты 1–2 курса, у которых «дискретка» и «алгоритмы» идут тяжёлым фоном Разработчики, готовящиеся к собеседованию в FAANG-подобные компании Те, кто слышал про «префикс-функцию» и «дерево Фенвика», но боится даже открыть Википедию Все, кто хочет перестать гуглить «как проверить, есть ли элемент в списке быстро»

Начальные требования

  • Уверенное знание любого императивного языка (C++, Python, Java, C#, Go)

  • Понимание циклов, функций, массивов, рекурсии (на базовом уровне)

  • Не пугаться буквы O в выражениях вроде O(n log n)

Наши преподаватели

Программа курса

загружаем...

Что вы получаете

  • Навигатор по основным структурам данных: когда массив, когда хеш-таблица, когда куча
  • Готовую «шпаргалку» по асимпотике: O(1), O(log n), O(n), O(n log n), O(n²) с живыми примерами
  • Реализации ключевых алгоритмов на популярных языках (на выбор)
  • Понимание ДП на простых задачах (рюкзак, кузнечик, лесенка)
  • Умение не писать велосипед, когда есть std::sort или sorted()
Price: Бесплатно

Расскажите о курсе друзьям

Price: Бесплатно