
- •Лабораторная работа 1 (Вариант 15) Методы сортировки, Методы поиска
- •Шейкерная сортировка
- •Быстрая сортировка (сортировка Хоара)
- •Сортировка в нелинейных структурах Турнирная сортировка
- •Пирамидальная сортировка
- •Фибоначчиев поиск
- •Поиск по бинарному дереву
- •Методы поиска, основанные на числовых свойствах ключей Поиск по бору
- •Поиск хешированием
- •Алгоритмы поиска словесной информации
- •Алгоритм Кнута - Морриса - Пратта (кмп)
- •Алгоритм Рабина
- •Ответы на вопросы:
- •Что понимается под сортировкой?
- •Каковы особенности сортировки: вставкой, выбором, обменом, Шелла, Хоара, турнирной, пирамидой?
- •Что включает в себя понятие сложности алгоритма?
- •В чем состоит методика анализа сложности алгоритмов сортировки?
- •Дайте определение понятия «линейная динамическая структура данных». Приведите примеры таких структур. Назовите их характерные особенности.
- •Сформулируйте принцип топологической сортировки, приведите примеры. Поясните необходимость использования тех или иных структур данных и выбранный метод реализации.
- •Что понимается под поиском?
- •В чем состоит методика анализа сложности алгоритмов поиска?
- •Каковы особенности поиска последовательного и бинарного?
- •Каковы особенности поиска интерполяционного и Фибоначчиевого?
- •Каковы особенности поиска по бинарному дереву?
- •Каковы особенности поиска по бору и хешированием?
- •В чем состоит методика анализа сложности алгоритмов поиска?
- •В чем особенность алгоритмов поиска словесной информации?
- •Что такое коллизия?
- •Какой метод используется для разрешения коллизий?
- •Что определяет показатель сбалансированности узла дерева?
- •Перечислите понятие дерева, двоичного дерева, упорядоченного дерева, дерева поиска.
- •Укажите способы задания дерева.
Что такое коллизия?
Коллизия (collision) - это ситуация, когда два различных ключа хешируются в одно и то же значение (индекс) хеш-таблицы или другой структуры данных, использующей хеширование. Коллизии могут возникать в процессе хеширования, когда разные ключи сопоставляются с одним и тем же хеш-значением.
Коллизии могут быть различного типа:
Открытая адресация (Open Addressing): При этом методе разрешения коллизий новый элемент ищет другую свободную ячейку в таблице.
Цепочки (Chaining): При этом методе разрешения коллизий каждая ячейка таблицы представляет собой связанный список элементов с одинаковым хешем.
Какой метод используется для разрешения коллизий?
Открытая адресация (Open Addressing):
Линейное зондирование (Linear Probing): При коллизии новый элемент ищет следующую свободную ячейку в таблице.
Квадратичное зондирование (Quadratic Probing): При коллизии новый элемент ищет следующую свободную ячейку, увеличивая шаг зондирования квадратично.
Двойное хеширование (Double Hashing): При коллизии используется вторая хеш-функция для вычисления нового индекса элемента.
Цепочки (Chaining):
При этом методе каждая ячейка таблицы представляет собой связанный список элементов с одинаковым хешем. Коллизии разрешаются путем добавления элементов в соответствующий связанный список.
Линейное рехеширование (Linear Rehashing): При коллизии происходит перехеширование, чтобы найти новую позицию для элемента.
Универсальное хеширование (Universal Hashing): Используется случайно выбранная хеш-функция из набора хеш-функций для каждого ключа, чтобы минимизировать вероятность коллизий.
Что определяет показатель сбалансированности узла дерева?
Показатель сбалансированности узла дерева обычно определяется с помощью фактора сбалансированности, который показывает разницу в высоте поддеревьев, начиная с данного узла. Фактор сбалансированности узла дерева определяется как разность высоты левого и правого поддеревьев этого узла.
Перечислите понятие дерева, двоичного дерева, упорядоченного дерева, дерева поиска.
Дерево (Tree): Абстрактная структура данных, состоящая из узлов, связанных ребрами. Узел может иметь несколько дочерних узлов, образуя иерархическую структуру.
Двоичное дерево (Binary Tree): Тип дерева, где каждый узел имеет не более двух дочерних узлов: левого и правого. Двоичные деревья могут быть пустыми или содержать данные в узлах.
Упорядоченное дерево (Ordered Tree): Дерево, в котором существует порядок между дочерними узлами каждого узла. Упорядоченные деревья могут быть использованы для представления упорядоченных данных.
Дерево поиска (Binary Search Tree, BST): Вид двоичного дерева, где каждый узел имеет значение ключа, причем ключи в левом поддереве меньше ключа корневого узла, а ключи в правом поддереве больше ключа корневого узла. Это обеспечивает эффективный поиск, вставку и удаление элементов.
Укажите способы задания дерева.
Список дочерних узлов (Child List): Каждый узел содержит ссылки на своих дочерних узлов. Этот метод часто используется для представления общего дерева.
Список смежности (Adjacency List): Для каждого узла хранится список его дочерних узлов. Этот метод часто используется для представления графа в виде дерева.
Матрица смежности (Adjacency Matrix): Матрица, где строки и столбцы представляют узлы, а элементы указывают на наличие ребра между узлами. Этот метод используется для представления деревьев без направленных ребер.
Представление в виде строки (String Representation): Дерево может быть закодировано в виде строки, где каждый символ представляет узел и его дочерние узлы. Например, префиксная запись (preorder traversal) дает строку, представляющую дерево.
Обход дерева (Tree Traversal): Дерево может быть задано путем обхода его узлов в определенном порядке (например, префиксный, инфиксный или постфиксный обход).