Образовал

Алгоритмы и структуры на С. Интерактивный курс

Сложность
Сложность
Продвинутый
Тип обучения
Тип обучения
Курс
Формат обучения
Формат обучения
Записанные лекции
Трудоустройство
Трудоустройство
Отсутствует
Стоимость курса
15 000 ₽
нет рассрочки
Курс для начинающих разработчиков, знакомых с основами языка С или С++. Поможет разобраться в основных структурах данных и базовых алгоритмах. Даёт общее понимание процессов внутри программы и базовые навыки выстраивания работы алгоритмов. Курс не привязан к конкретному языку программирования, и, несмотря на то, что все разбирается на примере С, знания могут быть применены в любом императивном языке программирования.
Что вы получите после обучения
Приобретаемые навыки
2
C++
Владельцы курса

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

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

На наших ресурсах вы найдете более 1000 бесплатных вебинаров, которые помогают развиваться профессионально и прокачивают soft skills — непрофильные навыки для эффективной работы.

За 10 лет на платформе зарегистрировались и получили доступ к новым знаниям более 4,5 млн человек. А в 2016 году мы вошли в состав Mail.ru Group — крупнейшего IT-гиганта России.

Присоединяйтесь, чтобы освоить новую профессию и поменять жизнь к лучшему!

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

Урок 1. Введение и знакомство
1. Кратко о С, зачем использовать С: Обзор курса; Использование языка С. 2. Краткий обзор сред разработки: Обзор компиляторов для; Linux; Windows; MacOSX; Обзор сред разработки; Блокнот; CodeBlocks; Eclipse; QTCreator. 3. Понимание алгоритма и структур данных: Понятие алгоритма; Требования к алгоритму; Запись алгоритма; Структура данных; Применение структур данных. 4. Инструменты визуализации алгоритмов: Способы визуализации; Язык UML; Примеры диаграмм; Программное обеспечение.

Урок 2. Сложность алгоритма и простые алгоритмы
1. Асимптотическая сложность алгоритма: Сложность алгоритма; Анализ сложности алгоритма. 2. Оценка времени выполнения алгоритмов: O Большое(O) - худшее время выполнения алгоритмов; Тета Большое (Θ) - среднее время выполнения; Омега Большое (Ω) - лучшее время выполнения алгоритмов. 3. Линейный, ветвящийся, циклический алгоритмы: Линейный алгоритм; Ветвящийся алгоритм; Циклический алгоритм. 4. Алгоритм Эвклида, расширенный алгоритм Эвклида, решето Эратосфена: Алгоритм Эвклида; Расширенный алгоритм Эвклида; Решето Эратосфена.

Урок 3. Рекурсия, рекурсивные алгоритмы
1. Понятие рекурсии, простые примеры: Понятие рекурсии; Примеры рекурсии; Рекуррентное соотношение. 2 Числа Фибоначчи, факториал, стек вызовов: Числа Фибоначчи; Факториал числа; Стек вызовов. 3. Треугольные числа, анаграммы: Треугольные числа; Анаграммы. 4. Ханойская башня: История и правила задачи; Решение задачи. 5. Динамическое программирование: поиск с возвратом: Понятие “Динамическое программирование”; Метод поиска с возвратом; Задача о восьми ферзях; Обход конем шахматной доски. 6. Динамическое программирование: поиск всех возможных вариантов: Поиск наибольшей общей подпоследовательности; Поиск маршрутов шахматного короля.

Урок 4. Массивы
1. Понятие и виды массивов: Понятие массива; Виды массивов; Одномерные массивы; Многомерные массивы; Матрицы; Треугольные массивы. 2. Базовые сортировки: Цель сортировки; Пузырьковая сортировка; Шейкерная сортировка. 3. Сортировки методом вставки и выбора: Сортировка методом вставки; Сортировка методом выбора. 4. Алгоритмы поиска: Алгоритмы поиска; Линейный поиск; Поиск с барьером. 5. Бинарный и интерполяционный поиск: Бинарный поиск; Интерполяционный поиск.

Урок 5. Сложные сортировки массивов
1. Быстрая сортировка Хоара: Сортировка Хоара; Сортировка (разбиение) Ломуто. 2. Быстрая сортировка. Улучшения: “Толстое” разбиение; Улучшенная быстрая сортировка; Плюсы и минусы быстрой сортировки. 3. Сортировка слиянием: Алгоритм нисходящего слияния; Алгоритм восходящего слияния; Алгоритм двухпутевого слияния; Плюсы и минусы сортировки слиянием. 4. Сортировка подсчётом, алгоритм со списком: Сортировка подсчетом (Counting); Сортировка алгоритмом со списком (Pigeonhole sort). 5. Блочная сортировка: Блочная сортировка; Плюсы и минусы; Пример кода. 6. Улучшенная сортировка вставками (Сортировка Шелла): Улучшенная сортировка вставками.

Урок 6. Стеки, очереди и списки
1. Динамические структуры данных: Стеки; Очереди; Дек; Приоритетные очереди. 2. Создание стека с использованием массива: Стек на основе массива; Базовые функции для работы со стеком. 3. Реализация очереди через массив: Очередь на основе массива. 4. Приоритетная и двусторонняя очереди: Очередь с приоритетом; Двусторонняя очередь.

Урок 7. Динамические структуры данных
1. Односвязные списки: Односвязные списки; Преимущества и недостатки использования. 2. Двусвязные списки: Двусвязные списки; Отличие от односвязных списков; Достоинства и недостатки. 3. Циклический список: Циклические списки; Причины использования. 4. Стек на основе односвязного списка: Стек; Типовые операции над стеком. 5. Очередь на основе двусвязного списка: Очередь; Типовые операции над очередью.

Урок 8. Деревья
1. Понятие и виды деревьев: Понятие дерева; Виды деревьев. 2. Построение двоичного дерева поиска: Структура дерева; Вставка узла; Скобочная запись; Удаление узла. 3. Рекурсивный обход двоичного дерева: Рекурсивный обход дерева; Примеры рекурсивного обхода дерева. 4. Построение сбалансированного дерева: Сбалансированное дерево; Описание на языке С. 5. Бинарный поиск в дереве: Деревья поиска; Бинарный поиск. 6. Пирамидальная сортировка (Heap sort): Пирамидальная сортировка.

Урок 9. Графы
1. Понятие и виды графов: Графы; Виды графов; Матрица смежности. 2. Обход графа в глубину: Обход графа в глубину; Пример описания обхода графа в глубину. 3. Обход графа в ширину: Обход графа в ширину; Пример обхода графа в ширину. 4. Волновой алгоритм: Волновой алгоритм Ли; Применение волнового алгоритма. 5. Реализация волнового алгоритма для дискретного рабочего поля. 6. “Жадные” алгоритмы: Определение “жадных” алгоритмов; Решение задачи о расписании; Примеры использования “жадных” алгоритмов.

Урок 10. Хеш-таблицы
1. Хеширование, хеш-функции: Хеширование; Хеш-функции; Хеш-таблицы; Коллизии; Метод цепочек. 2. MD5: Применение MD5; Устройство MD5. 3. Построение таблиц: Хеш-таблицы; Способы создания; Создание хеш-таблицы на основе метода цепочек. 4. Открытая адресация: Понятие открытой адресации; Подготовка хеш-таблицы. 5. Открытая адресация: Линейное пробирование; Квадратичное пробирование; Двойное хеширование.

Урок 11. Введение в криптографию
1. Краткая история. Перестановочные шифры: История криптографии; Перестановочный шифр и его расшифровка; Взлом перестановочного шифра; Маршрутный шифр. 2. Шифры подстановки: Шифр Цезаря; Шифр Виженера; Простой подстановочный шифр; Одноразовый блокнот. 3. Блочные шифры: Определение блочных шифров; Трехраундовый шифр; Шифр Фейстеля. 4. Обзор используемых в современном ИТ шифров: Краткий обзор современных шифров.

Рейтинг
4.3
рейтинг
0
0
0
0
0
обновлено 01.10.2022 18:10
Алгоритмы и структуры на С. Интерактивный курс
Оставить отзыв
Поделиться курсом с друзьями