DanLevy.net

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

Сможете ли вы выполнить BS над бинарным деревом?

Добро пожаловать на мой тест по структурам данных и алгоритмам!

Этот тест проверит ваши знания о структурах данных (стек, списки, деревья и т.д.), алгоритмах и оценке временной сложности.

20 вопросов… Начинаем!

Какая структура данных лучше всего подходит для доступа LIFO (Last In, First Out)?

Стек лучше всего подходит для доступа LIFO. Очереди лучше всего подходят для доступа FIFO (First In, First Out).

Какова временная сложность алгоритма, который всегда занимает одинаковое время выполнения, независимо от размера входных данных?

O(1) представляет собой постоянную временную сложность. Это означает, что алгоритм всегда занимает одинаковое время выполнения, независимо от размера входных данных.

Какова временная сложность вычисления длины односвязного списка?

Чтобы вычислить длину односвязного списка, необходимо пройти каждый узел от головы до хвоста, что приводит к временной сложности O(n).

Какова средняя временная сложность поиска элемента в сбалансированном бинарном дереве поиска?

В сбалансированном BST средняя временная сложность поиска составляет O(log n), потому что на каждом уровне пространство поиска уменьшается вдвое.

Какова временная сложность алгоритма Merge Sort в худшем случае?

Merge Sort всегда работает с худшей сложностью O(n log n), так как он неоднократно делит массив пополам и объединяет отсортированные подмассивы.

Какая структура данных обычно используется для реализации поиска в ширину (BFS)?

BFS использует очередь для обхода узлов уровень за уровнем, обрабатывая их в порядке ширины (по “строке”).

Какой алгоритм обычно используется для обнаружения циклов в ориентированном графе?

Поиск в глубину (DFS) обычно используется для обнаружения циклов в графе, поддерживая стек рекурсии для отслеживания посещённых узлов.

Какова временная сложность сортировки кучей в худшем случае?

Сортировка кучей сохраняет худшую временную сложность O(n log n), так как она строит кучу и многократно извлекает максимальный элемент.

Какова средняя временная сложность доступа к элементу в хеш‑таблице?

Хеш‑таблицы имеют среднюю временную сложность O(1) при доступе к элементам, при условии хорошей хеш‑функции, минимизирующей коллизии.

Какой набор содержит типичные операции, выполняемые со стеком?

Основные операции стека — Push (добавление элемента), Pop (удаление элемента) и Peek (просмотр верхнего элемента без его удаления).

Какой алгоритм обычно используется для поиска кратчайшего пути в взвешенном графе с неотрицательными ребрами?

Алгоритм Дейкстры часто применяется для нахождения кратчайшего пути в графах с неотрицательными весами ребер. Он использует приоритетную очередь для эффективного определения минимального расстояния.

Какой набор содержит примеры самобалансирующихся двоичных поисковых деревьев?

AVL‑деревья и красно‑черные деревья являются типами самобалансирующихся деревьев, которые гарантируют, что дерево остаётся сбалансированным после каждой вставки или удаления.

Что необходимо определить в рекурсивной функции, чтобы предотвратить бесконечную рекурсию?

Базовый случай необходим в рекурсивной функции, чтобы остановить рекурсивные вызовы, когда выполнено определённое условие, предотвращая бесконечную рекурсию.

Какие две основные операции у очереди?

Две основные операции в очереди — Enqueue (добавление элемента в конец) и Dequeue (удаление элемента из начала).

Каковы условия выполнения топологической сортировки графа?

Топологическую сортировку можно выполнить над графом, если он ориентирован и ацикличен (DAG). Такой порядок полезен в задачах планирования выполнения.

Какова временная сложность наивной рекурсивной реализации последовательности Фибоначчи?

Наивная рекурсивная реализация последовательности Фибоначчи имеет временную сложность O(2^n) из‑за обширных повторных вычислений для каждого числа Фибоначчи.

Какая структура данных обычно используется для реализации приоритетной очереди?

Приоритетная очередь обычно реализуется с помощью кучи, потому что она обеспечивает эффективное извлечение элемента с наивысшим или наименьшим приоритетом.

Какой набор перечисляет общие порядки обхода в глубину для бинарного дерева?

In-order, Pre-order и Post-order — это три распространённых порядка обхода в глубину для бинарных деревьев, каждый из которых отличается порядком посещения узлов. Обход в ширину также распространён, но относится к другой категории обходов.

Какие из следующих свойств верны для min-heap?

В min-heap корень всегда является наименьшим элементом, а высота дерева O(log n), что делает вставку и извлечение эффективными.

Алгоритм пузырьковой сортировки стабилен?

Пузырьковая сортировка — стабильный алгоритм сортировки, так как сохраняет относительный порядок равных элементов при сортировке.