Мы используем cookie для стабильной работы сервиса. Подробнее

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

ФорматОнлайн
Объём15 занятий
О курсе

Подробнее

В этом курсе мы пройдём основные алгоритмы и структуры данных. Примеры кода написаны на C#, однако 99% материала будет ясно любому Java-программисту, поскольку синтаксис языков очень схож, а примеры кода алгоритмов и структур данных так вообще будут почти полностью совпадать и в C# и в Java. В курсе есть лишь несколько лекций посвящённых исключительно библиотекам C#. Зачем изучать алгоритмы и структуры данных? Алгоритмы и структуры данных составляют основы программирования. Понимание алгоритмов и структур данных – одно из самых важных требований для устройства на работу в хорошие компании. Вам придётся решать множество задач на собеседованиях связанных с алгоритмами и структурами данных. Действительно, вы, конечно, сможете прожить и без понимания алгоритмов и структур данных. Однако, вы сможете так спокойно жить до тех пор, пока вы не встретитесь с реальной проблемой, решение которой потребует грамотного выбора подходящей структуры данных или потребует кастомизации известных алгоритмов. Если вы никогда не сталкивались с подобными проблемами, то, поверьте, это всего лишь вопрос времени. Однажды, вы столкнётесь с такой проблемой и при отсутствии глубокого понимания структур данных и алгоритмов, вы почувствуете себя опозоренным и беспомощным. Вы застрянете. Слабость понимания алгоритмов и структур данных сильно понижает ваши шансы пройти собеседование в хорошую компанию. Почти все компании предпочитают нанимать разработчиков, хорошо разбирающихся в алгоритмах и структурах данных. Запомните это. Не откладывайте изучение фундаментальных концепций. Более мощное «железо» – не всегда хорошее/доступное решение проблем связанных с производительностью. Иногда, возникает необходимость разрабатывать программы для очень низко производительных устройств. Использование какого-либо железа зачастую так же зависит от бюджета заказчика, поэтому далеко не всегда выбор железа диктуется разработчиком. Понимание того, что происходит «под капотом» весьма желательно. Хотя бы на один уровень в глубину. Действительно, если вы не понимаете как устроен список, иногда вы будете принимать не оптимальные или вообще неверные решения. Почему этот курс? Вы можете меня спросить «почему я должен взять именно ваш курс»? И вот мой ответ: этот курс покрывает множество тем я старался сделать этот курс не слишком сухим курс посвящён не только алгоритмам и структурам данных, но также освящает внутреннее устройство структур данных и алгоритмов встроенных в основную библиотеку классов .NET (библиотека классов в .NET Core в плане структур данных и алгоритмов устроена точно так же) курс практический с домашними заданиями и решениями курс поможет вам пройти технические собеседования курс сделан профессиональным разработчиком с большим реальным опытом и множество др. причин :) Что внутри курса? На данный момент курс покрывает следующие темы: Введение в алгоритмы и структуры данных: структура данных, абстрактный тип данных, разница между этими понятиями. Что такое алгоритм и почему всё это для нас важно? Введение в анализ алгоритмов: сколько времени займёт исполнение программы, построение log-log графика, аппроксимации, порядок роста сложности (Big-O нотация), потребление памяти Зачисляйтесь на курс и вы не пожалеете! Не забывайте, что Udemy даёт 30 дней на возврат денежных средств, так что даже если вам курс не понравится – вы ничем не рискуете, всегда можно вернуть деньги парой кликов.  
Требования

Что нужно для старта

  • Знание C# или Java на базовом уровне
  • Из инструментов достаточно Visual Studio Community Edition
Аудитория

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

  • - C#-разработчики, которые хотят изучить алгоритмы и структуры данных на их любимом языке
  • - Начинающие разработчики, которые готовятся к поиску работы
Содержание

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

15 занятий
№ТемаЧто внутри
01Материалы и коммюнити

- Исходный код курса

02Введение в алгоритмы и структуры данных

- Введение в структуры данных
- Введение в алгоритмы

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

- Временная сложность
- Строим log-log график. Прогнозируем время работы алгоритма.
- Аппроксимации
- Порядок роста

04Массивы

- Обзор массивов в C#
- Массивы в памяти
- Временная сложность операций на массиве
- Операции на массивах в C#

05Алгоритмы сортировки

- Пузырьковая сортировка (теория)
- Пузырьковая сортировка (реализация)
- Устойчивость (стабильность) алгоритма сортировки
- Сортировка выборкой (теория)
- Сортировка выборкой (реализация)
- Сортировка вставками (теория)
- Сортировка вставками (реализация)
- Рекурсия
- Сортировка Шелла (теория)
- Сортировка Шелла (реализация)
- Сортировка слияниями (теория)
- Сортировка слияниями (реализация)
- Быстрая сортировка (теория)
- Быстрая сортировка (реализация)

06Списки

- Тип List в BCL
- Узел (Node) - базовый строительный блок
- Связные списки
- Односвязный список (теория)
- Односвязный список (реализация)
- Двусвязный список (теория)
- Двусвязный список (реализация)
- Тип LinkedList в BCL

07Стек (Stack)

- Стек (теория)
- Реализация стека (на массиве)
- Реализация стека (на связном списке)
- Стек из BCL. Характеристики стека

08Очередь (Queue)

- Очередь (теория)
- Реализация очереди (на массиве)
- Кольцевая очередь (теория)
- Кольцевая очередь (реализация)
- Реализация очереди (на связном списке)
- Тип Queue в BCL

09Алгоритмы поиска

- Линейный поиск
- Бинарный поиск (реализация)

10Символьные таблицы

- Введение в символьные таблицы
- API символьных таблиц
- Последовательный поиск (тривиальный подход)
- Последовательный поиск: ДЗ
- Последовательный поиск: решение ДЗ
- Символьная таблица на бинарном поиске
- Символьная таблица на бинарном поиске: ДЗ
- Символьная таблица на бинарном поиске: решение ДЗ
- Заключение

11Cимвольные таблицы и Хеширование (Хеш-таблицы)

- Введение в хеш-таблицы
- Хеширование в примитивных типах и GetHashCode
- GetHashCode в ссылочных типах и типах-значениях
- Разрешение коллизий
- Метод раздельных цепочек
- Метод раздельных цепочек: ДЗ
- Метод раздельных цепочек: решение ДЗ
- Метод линейного пробирования
- Словари в BCL
- Множества. Множества в BCL

12Деревья

- Введение в деревья
- Двоичное дерево поиска (Binary Search Tree - BST)
- Простая реализация BST. Часть 1
- Простая реализация BST. Часть 2
- Операция удаления в BST (теория)
- Операция удаления в BST (реализация)

13Пирамида и пирамидальная сортировка

- Определение пирамиды
- Пирамида и массив
- Операция вставки (теория)
- Реализация пирамиды
- Операция удаления (теория)
- Операция удаления (реализация). Реализация Peek.
- Характеристики операций на пирамиде
- Пирамидальная сортировка (теория)
- Пирамидальная сортировка (реализация)

14Различные алгоритмы

- Решето Эратосфена

15Бонус

Подробности будут доступны на странице курса

01Материалы и коммюнити

- Исходный код курса

02Введение в алгоритмы и структуры данных

- Введение в структуры данных
- Введение в алгоритмы

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

- Временная сложность
- Строим log-log график. Прогнозируем время работы алгоритма.
- Аппроксимации
- Порядок роста

04Массивы

- Обзор массивов в C#
- Массивы в памяти
- Временная сложность операций на массиве
- Операции на массивах в C#

05Алгоритмы сортировки

- Пузырьковая сортировка (теория)
- Пузырьковая сортировка (реализация)
- Устойчивость (стабильность) алгоритма сортировки
- Сортировка выборкой (теория)
- Сортировка выборкой (реализация)
- Сортировка вставками (теория)
- Сортировка вставками (реализация)
- Рекурсия
- Сортировка Шелла (теория)
- Сортировка Шелла (реализация)
- Сортировка слияниями (теория)
- Сортировка слияниями (реализация)
- Быстрая сортировка (теория)
- Быстрая сортировка (реализация)

06Списки

- Тип List в BCL
- Узел (Node) - базовый строительный блок
- Связные списки
- Односвязный список (теория)
- Односвязный список (реализация)
- Двусвязный список (теория)
- Двусвязный список (реализация)
- Тип LinkedList в BCL

07Стек (Stack)

- Стек (теория)
- Реализация стека (на массиве)
- Реализация стека (на связном списке)
- Стек из BCL. Характеристики стека

08Очередь (Queue)

- Очередь (теория)
- Реализация очереди (на массиве)
- Кольцевая очередь (теория)
- Кольцевая очередь (реализация)
- Реализация очереди (на связном списке)
- Тип Queue в BCL

09Алгоритмы поиска

- Линейный поиск
- Бинарный поиск (реализация)

10Символьные таблицы

- Введение в символьные таблицы
- API символьных таблиц
- Последовательный поиск (тривиальный подход)
- Последовательный поиск: ДЗ
- Последовательный поиск: решение ДЗ
- Символьная таблица на бинарном поиске
- Символьная таблица на бинарном поиске: ДЗ
- Символьная таблица на бинарном поиске: решение ДЗ
- Заключение

11Cимвольные таблицы и Хеширование (Хеш-таблицы)

- Введение в хеш-таблицы
- Хеширование в примитивных типах и GetHashCode
- GetHashCode в ссылочных типах и типах-значениях
- Разрешение коллизий
- Метод раздельных цепочек
- Метод раздельных цепочек: ДЗ
- Метод раздельных цепочек: решение ДЗ
- Метод линейного пробирования
- Словари в BCL
- Множества. Множества в BCL

12Деревья

- Введение в деревья
- Двоичное дерево поиска (Binary Search Tree - BST)
- Простая реализация BST. Часть 1
- Простая реализация BST. Часть 2
- Операция удаления в BST (теория)
- Операция удаления в BST (реализация)

13Пирамида и пирамидальная сортировка

- Определение пирамиды
- Пирамида и массив
- Операция вставки (теория)
- Реализация пирамиды
- Операция удаления (теория)
- Операция удаления (реализация). Реализация Peek.
- Характеристики операций на пирамиде
- Пирамидальная сортировка (теория)
- Пирамидальная сортировка (реализация)

14Различные алгоритмы

- Решето Эратосфена

15Бонус
Организатор

Автор курса

StepikStepik
Stepik — образовательная платформа и конструктор онлайн-курсов. Мы разрабатываем алгоритмы адаптивного обучения, сотрудничаем с авторами MOOC, помогаем в проведении олимпиад и программ переподготовки. Наша цель — сделать образование открытым и удобным. Stepik — широко известная российская образовательная платформа, основанная в 2013 году. На Stepik зарегистрировано более миллиона пользователей из России и стран СНГ. В настоящее время на Stepik представлены несколько тысяч учебных курсов на самые разные темы.
Подробнее об авторе
Мнения учеников

Отзывы о курсе

Оставьте отзыв

Расскажите о качестве обучения, поддержке и результате. Это поможет другим выбрать организацию осознанно.

Напишите ваш коментарий, не менее 30 символов

Нажимая кнопку, вы даете согласие на обработку персональных данных

Оставьте заявку

Консультант ответит на вопросы о курсе «Алгоритмы и структуры данных от А до Я» и поможет разобраться в деталях обучения.

Комментарий ...

Нажимая кнопку, вы даете согласие на обработку персональных данных

Информация обновлена 3 сентября 2026 г.

Продолжить выбор

Похожие курсы

Программа: Твой JavaScript
Программа: Твой JavaScript

Цель курса - дать вам исчерпывающее понимание JavaScript. Мы не обещаем сделать из вас сеньора за две недели, это сказки. Наша задача - предоставить самую подробную и глубокую баз…

Онлайн21 занятий
4 250 ₽
Bioinformatics Algorithms @UNBC
Bioinformatics Algorithms @UNBC

How do we sequence and compare genomes? How do we identify the genetic basis for disease? How do we construct an evolutionary Tree of Life for all species on Earth? When you compl…

Онлайн11 занятий
70 ₽
Основы C#
Основы C#

Курс несомненно подойдёт начинающим разработчикам, который хотят освоить современный и востребованный язык программирования. Курс мы начнём с изучения основ - встроенных в язык ти…

Онлайн10 занятий
3 999 ₽
Профессиональная переподготовка «Инженер-программист станков ЧПУ»
−8%256 часов
Профессиональная переподготовка «Инженер-программист станков ЧПУ»

▶️ Профессиональная переподготовка «Инженер-программист станков ЧПУ» с выдачей диплома. Дистанционное (онлайн) обучение в учебном центре «НЦПО». 🔥Обучение в рассрочку от 1320 руб.…

Онлайн3 занятий
Домашние заданияИнтерактивные тренажёры+3
17 250 ₽−8%
15 850 ₽от 1 320 ₽/мес на 12 мес.
Начать без затрат

Бесплатные курсы

Python для решения практических задач
Бесплатно
Python для решения практических задач

Научились решать простые задачи на питоне, но не можете понять, как сделать что-то полезное? Наш курс научит вас правильно гуглить! На примерах задач сбора данных (Data Scraping)…

Онлайн5 занятий
Бесплатно
Python для геймеров: базовый курс на игровых примерах
Бесплатно4 часа в неделю
Python для геймеров: базовый курс на игровых примерах

Здесь не будет сложных задач «про шахматы»! Здесь не будет абстрактных задач и сложных математических вычислений. Зато есть: теория простым и понятным языком игровые механики логи…

Онлайн12 занятий
Бесплатно
Claude Code с нуля до реальных задач
Бесплатно1 месяц
Claude Code с нуля до реальных задач

Вы разовьёте аналитическое мышление, научитесь искать уязвимости и обеспечивать безопасность IT-систем. Освоите востребованную профессию даже с нулевым опытом в IT. Программа курс…

Онлайн
Бесплатноот 11 647 ₽/мес