Базовые знания программирования

Материал из m6a
Перейти к: навигация, поиск

Алгоритмы

  • Определение алгоритма:
    • Чёткая последовательность инструкций для решения задачи.
    • Характеристики: конечность, определённость, эффективность.
  • Основные алгоритмические конструкции:
  • Алгоритмы сортировки:
    • Сортировка пузырьком (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).
  • Хеш-таблицы:
    • Хеш-функции.
    • Коллизии и методы их разрешения.

Дополнительные темы

  • Парадигмы программирования:
    • Императивное программирование.
    • Объектно-ориентированное программирование (ООП).
    • Функциональное программирование.
  • Работа с файлами:
    • Чтение из файла.
    • Запись в файл.
  • Отладка программ:
    • Использование отладчика.
    • Поиск и исправление ошибок.
  • Тестирование программ:
    • Юнит-тестирование.
    • Интеграционное тестирование.