[GeekBrains] Алгоритмы и структуры данных на Python. Базовый курс (Алексей Петренко,Ирина Гречихина)
Эффективные решения вычислительных задач
Студенты углубят базу программирования на языке Python и «прокачают» алгоритмическое мышление. Курс учит понимать фундаментальные алгоритмы и использовать их для решения практических задач. Знакомит с методами анализа данных на Python и всеми необходимыми библиотеками.
Чему Вы научитесь
- Излагать идеи в виде блок-схем, читать готовые схемы и реализовывать программы на их основе;
- Закрепить навыки реализации простейших алгоритмов с ветвлениями, циклами, а также рекурсивных алгоритмов;
- Познакомиться с классическими структурами данных, которые применяются в программировании, и уметь использовать их реализации на языке Python;
- Освоить модуль Collections и научиться работать с популярными структурами данных модуля;
- Освоить классические алгоритмы, которые лежат в основе современных проектов любой степени сложности;
- Узнать об алгоритмической сложности алгоритмов и научиться оценивать сложность вашего алгоритма при помощи встроенных в Python инструментов;
- Познакомиться с внутренним устройством интерпретатора Python и понять структуру объектов внутри языка;
- Научиться работать с деревьями и хеш-таблицами. Писать алгоритмы для работы с ними.
- Урок 1. Введение в алгоритмизацию и реализация простых алгоритмов на Python
Введение в алгоритмизацию. Решение практических задач. - Урок 2. Циклы. Рекурсия. Функции.
Циклы – многократное повторение однотипных действий. Рекурсивный перебор. Алгоритм Евклида. Решето Эратосфена – алгоритм определения простых чисел. Использование функций. - Урок 3. Массивы. Кортежи. Множества. Списки.
Понятие массива, кортежа, множества и списков. Обработка последовательностей, одномерных и двумерных массивов. Работа с ассоциативными массивами (таблицами данных). Двоичный (бинарный) поиск элемента в массиве. - Урок 4. Эмпирическая оценка алгоритмов на Python
Измерения времени работы с использованием timeit. Профайлер. - Урок 5. Коллекции. Список. Очередь. Словарь.
Понятие коллекции. Основные типы коллекции. Стандартные методы работы с коллекциями. Примеры применения коллекций для решения практических задач. - Урок 6. Работа с динамической памятью
Представление в памяти коллекций. Управление памятью. - Урок 7. Алгоритмы сортировки
Сортировка пузырьком. Быстрая сортировка (Quick sort). Сортировка Шелла. Сортировка сложных структур с использованием ключа. Обратная сортировка. Сортировка с использованием функции attrgetter. - Урок 8. Деревья. Хэш-функция
Двоичные деревья поиска. Проход по дереву. Хэш-функция.