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

Стать крутым инженером будет проще разработчику, который знаком со структурами данных и алгоритмами.

Алгоритмы и структуры данных
Цена
45000
4 месяца4 месяца
Бесплатное ознакомлениеБесплатное ознакомление
Сертификат гос. образцаСертификат гос. образца
РусскийРусский
Яндекс Практикум

Описание:

Крупнейшие IT-компании мира и многие стартапы проверяют на собеседованиях алгоритмическую подготовку соискателей. Это лучший способ убедиться, что человек умеет быстро думать и писать работающий код. В этом курсе вы напишете много кода, научитесь оценивать эффективность решений, набьёте руку на практических заданиях, пройдёте учебное собеседование, максимально приближенное к реальности.

Погружение в IT-профессию подразумевает постоянный контакт с изучаемыми технологиями, выполнение практических заданий и общение с наставником. Для этого мы создали собственную среду обучения.

  • Онлайн-тренажёр и Яндекс.Контест. С первого дня вы учитесь на практике. Теория и поддержка доступны в нашем онлайн-тренажере, а практика — в Яндекс.Контесте — специальной платформе, созданной для проверки алгоритмических задач. Решайте задачи на своём любимом популярном языке программирования: C/C++, Python, Java, Go или JavaScript.
  • Код-ревью. Работающий код — это только часть успеха. Для работы в команде нужно уметь писать читаемый и красивый код. Наши код-ревьюеры помогут вам отточить свои навыки в этом направлении.
  • Поддержка. Команда наставников проверяет и комментирует ваши работы, помогает разобраться в сложностях и делится профессиональным опытом. Поддержка в чате доступна 24/7.
  • Программисты учат программированию. Наставники — опытные разработчики из Яндекса и других IT-компаний.


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

Введение в алгоритмы

  • Определение алгоритма. Понятие сложности алгоритмов. O-нотация.

Основные структуры данных

  • Массив, связный список, стек, очередь. Представление в памяти, сложность операций вставки, поиска и удаления. Преимущества и недостатки использования.

Жадные алгоритмы

  • Понятие жадного алгоритма, область применения. Примеры, доказательство корректности алгоритма.

Рекурсия

  • Понятие рекурсии. Основная теорема о рекурсии. Принцип разделяй и властвуй. Преимущества и недостатки метода.

Сортировки

  • Квадратичные сортировки. Сортировка слиянием. Алгоритм нахождения k-й порядковой статистики, быстрая сортировка. Сортировки с использованием свойств элементов. Внешняя сортировка.

Деревья

  • Бинарный поиск. Деревья поиска. Сбалансированные деревья. Куча. Пирамидальная сортировка. Некоторые специальные деревья.

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

  • Алгоритм Хафмена. Структура данных префиксное дерево. Алгоритмы поиска подстроки в строке.

Хеш-таблицы. Понятие и свойства хеш-функции.

  • Абстракция отображение. Понятие и свойства хеш-функции, примеры. Коллизии и способы их разрешения. Множества. Битовые маски. Фильтр Блума.

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

  • Базовое динамическое программирование, одномерные и двумерные задачи. Динамическое программирование по подотрезкам. Динамическое программирование по подмножествам. Динамическое программирование по поддеревьям.

Графы

  • Определение графа, способы представления в памяти. Обходы графов: DFS, BFS. Связность. Алгоритмы поиска кратчайших путей в графах. Построения минимального остовного дерева.