[Специалист] Алгоритмы. Олимпиадное программирование

Цена:
402.6
doneМного
doneЗаканчивается
highlight_offНет в наличии
notifications_none
Уведомить

[?IMG] ?

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

Программа курса
Модуль 1. Занятие №1. Знакомство

· Алгоритмы
· Тестирующая система

Модуль 2. Занятие №2. Типы данных и отладка
· Типы данных в Java
· Примитивные типы
· Объекты
· Классы-обертки
· BigInteger и BigDecimal
· Отладка

Модуль 3. Занятие №3. Решение задач из области арифметики
· Проверка на четность
· Немного теории
· Цифры числа
· Получение цифр числа
· Проверка на простоту
· Сумма делителей
· Количество делителей
· Разложение на простые множители

Модуль 4. Занятие №4. НОД(GCD) и НОК(LCM)
· Немного теории
· Немного о задачах

Модуль 5. Занятие №5. Однопроходные алгоритмы
· Чтение
· Сумма элементов
· Максимум из всех
· Максимум из четных
· Второй максимум
· Немного о задачах
· Чтение больших объемов данных
· Пример использования класса
· StreamTokenizer для быстрого чтения последовательности чисел

Модуль 6. Занятие №6. Массивы
· Создание массива
· Ввод (считывание) массива из N элементов
· Вывод всех элементов массива
· Поиск максимума
· Поиск индекса максимального
· Поиск индекса заданного числа в массиве
· Вывод массива в обратном порядке
· Косвенная адресация

Модуль 7. Занятие №7. Сортировка массива
· Сортировка выбором (метод минимума)
· Немного теории
· Метод сортировки обменами (метод пузырька)

Модуль 8. Занятие №8. Символы и строки в Java
· Символы
· Класс String
· Создание строки
· Чтение строки
· Длина строки
· Сравнение строк
· Добавление к строке
· Преобразование различных типов в строку и обратно
· Извлечение символа и подстроки
· Поиск в строке
· Функции замены
· Разворот строки

Модуль 9. Занятие №9. Двумерные массивы
· Создание и «стандартное» чтение
· Вывод массива в виде таблицы
· Cумма всех элементов
· Сумма элементов главной диагонали
· Неровные массивы

Модуль 10. Занятие №10. Графы I. Определения, хранение
· Немного теории
· Основные понятия
· Деревья
· Способы хранения графов
· Способ №0. Иногда граф можно вообще не хранить специальным образом
· Способ №1. Матрица смежности
· Способ №2. Список ребер
· Способ №3. Списки смежности

Модуль 11. Занятие №11. Стек и очередь
· Стек (Stack)
· Очередь (Queue)

Модуль 12. Занятие №12. Графы II. Поиск в ширину
· BFS (Breadth-first search)
· BFS в графе, заданном матрицей смежности G
· Применения алгоритма поиска в ширину
· Поиск кратчайших путей из данной
· Немного теории
· Поиск компонент связности