Базовые знания программирования
Материал из m6a
Алгоритмы
- Определение алгоритма:
- Чёткая последовательность инструкций для решения задачи.
- Характеристики: конечность, определённость, эффективность.
- Основные алгоритмические конструкции:
- Последовательное выполнение.
- Ветвление (условные операторы `if`, `else if`, `else`).
- Циклы (`for`, `while`, `do-while`).
- Алгоритмы сортировки:
- Сортировка пузырьком (Bubble Sort).
- Сортировка вставками (Insertion Sort).
- Сортировка выбором (Selection Sort).
- Быстрая сортировка (Quick Sort).
- Сортировка слиянием (Merge Sort).
- Алгоритмы поиска:
- Линейный поиск.
- Бинарный поиск.
- Рекурсия:
- Определение и примеры.
- Базовый случай и рекурсивный вызов.
- Анализ сложности алгоритмов:
- Нотация "O" (Big O notation).
- Временная сложность.
- Пространственная сложность.
Структуры данных
- Основные типы данных:
- Целые числа (Integer).
- Числа с плавающей точкой (Float).
- Строки (String).
- Логические значения (Boolean).
- Массивы:
- Одномерные массивы.
- Многомерные массивы.
- Операции над массивами.
- Связные списки:
- Односвязные списки.
- Двусвязные списки.
- Операции: вставка, удаление, поиск.
- Стеки:
- Принцип LIFO (Last In, First Out).
- Операции: push, pop, peek.
- Очереди:
- Принцип FIFO (First In, First Out).
- Операции: enqueue, dequeue.
- Деревья:
- Бинарные деревья.
- Деревья поиска.
- Операции: вставка, удаление, поиск.
- Обходы деревьев (in-order, pre-order, post-order).
- Графы:
- Представление графов (матрица смежности, список смежности).
- Поиск в ширину (BFS).
- Поиск в глубину (DFS).
- Хеш-таблицы:
- Хеш-функции.
- Коллизии и методы их разрешения.
Дополнительные темы
- Парадигмы программирования:
- Императивное программирование.
- Объектно-ориентированное программирование (ООП).
- Функциональное программирование.
- Работа с файлами:
- Чтение из файла.
- Запись в файл.
- Отладка программ:
- Использование отладчика.
- Поиск и исправление ошибок.
- Тестирование программ:
- Юнит-тестирование.
- Интеграционное тестирование.