Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры данных ответы на экз.docx
Скачиваний:
0
Добавлен:
13.12.2025
Размер:
45.55 Кб
Скачать

  1. Структуры данных. Классификация

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

Классификация: 1) Линейные: массив, список, связанный список, стек, очередь, хэш таблица

  1. Иерархические: N-арные деревья

3) Сетевые: графы(ориентированные и неориентированные)

4) Табличные: двумерные массивы

  1. Алгоритмы. Определение. Как алгоритмы соотносятся со структурами данных.

Алгоритм - четкая последовательность шагов, для решения конкретной задачи или выполнения определенного действия Основные свойства: дискретность, определенность, конечность, результативность, массовость.

Соотношение со структурами данных:

  • Структуры данных — где и как хранятся данные.

  • Алгоритмы — что с этими данными делается.

  1. Оценка сложности алгоритма. Способы. Меры оценки сложности.

Оценка сложности — это анализ зависимости времени (или памяти) работы алгоритма от размера входных данных n. Способы оценки:

1)Анализ по случаям: — лучший, — худший, — средний (при случайных данных).

2)Асимптотический анализ — оценка порядка роста функции времени T(n) при n→∞.

3)Использование асимптотических обозначений: — Θ(g(n)) — точная оценка, — O(g(n)) — верхняя граница (худший случай), — Ω(g(n)) — нижняя граница (лучший случай).

Меры оценки:

Временная сложность — основная мера (сколько операций выполняется).

Пространственная сложность — объём дополнительной памяти.

  1. Оценка сложности алгоритма. Худший, лучший случай и в среднем.

  • Лучший случай — когда всё складывается идеально;

  • Средний случай — ожидаемое поведение на типичных данных;

  • Худший случай — гарантированный максимум затраченных ресурсов.

Пример: сортировка вставками

Лучший случай — данные «удачные» (например, массив уже отсортирован). → Для сортировки вставками: O(n).

Худший случай — данные «наихудшие» (например, массив в обратном порядке). → Каждый элемент сравнивается со всеми предыдущими O(n^2). → Даёт верхнюю границу времени работы — используется чаще всего.

Средний случай — входные данные случайны. → В среднем каждый элемент сравнивается с половиной предыдущих → O(n^2).

Оценка сложности — это анализ зависимости времени (или памяти) работы алгоритма от размера входных данных n.

  1. Массивы и сортировки массивов. Сортировка пузырьком.Алг. сложность

Массив — это упорядоченная структура данных, хранящая элементы одного типа.

Алгоритмическая сложность:

В лучшем:O(n) В среднем:O(n^2) необходимо сделать столько сравнений и перестановок. В худшем:O(n^2) необходимо сделать столько сравнений и перестановок. Как работает: Просто меняем местами соседние элементы до тех пор пока не отсортируется.

  1. Массивы и сортировка массивов. Сортировка выбором.Алг. сложность

Сортировка выбором — это простой алгоритм, который на каждом шаге находит минимальный элемент в неотсортированной части массива и меняет его местами с первым элементом этой части.

Алг.сложность: O(n^2)

  1. Массивы и сортировка массивов. Сортировка вставками.Алг. сложность

Сортировка вставками работает по принципу, похожему на сортировку игральных карт в руках:

Массив делится на отсортированную часть (в начале — только первый элемент) и неотсортированную. — На каждом шаге берётся очередной элемент из неотсортированной части и вставляется в правильное место в отсортированной части. Алгоритмическая сложность: Лучшее:O(n) Среднее:O(n^2) Худшее:O(n^2)

  1. Массивы и сортировка массивов. Сортировка расчёской.Алг. сложность

Сортировка расчёской (гребёнкой) — это улучшенная версия сортировки пузырьком, в которой вместо сравнения соседних элементов сравниваются элементы, находящиеся на некотором расстоянии (шаге) друг от друга. Этот шаг постепенно уменьшается от размера массива до 1 (обычно делится на фактор ≈ 1.247 на каждом проходе).

Алгоритмическая сложность:

  • В лучшем случае: O(n log n) (при удачном выборе шагов и почти отсортированном массиве),

  • В среднем случае: O(n² / 2ᵖ), где p — количество проходов, но на практике часто считается O(n²),

  • В худшем случае: O(n²) — требуется выполнить много сравнений и перестановок.