Абсолютная погрешность
Absolute error
Модуль разницы между приближением и истинным ответом.
Загружаем материалы…
АЛГОРИТМЫ / А—Я
Определения из всех лекций курса. Повторяющиеся термины объединены, а ссылки показывают, где они встречались. Справочник пополняется вместе с новыми лекциями.
Терминов: 148 из 148
Absolute error
Модуль разницы между приближением и истинным ответом.
Algorithm
Конечная, определённая последовательность допустимых операций для решения формально поставленной задачи.
Strassen algorithm
Метод блочного умножения матриц, использующий семь рекурсивных умножений вместо восьми.
Amortized bound
Оценка затрат последовательности операций.
Amortized cost
Средняя стоимость операции в последовательности в смысле суммарной верхней оценки.
Amortized analysis
Метод оценки суммарной стоимости последовательности операций с учётом редких дорогих действий.
Base case
Условие, при котором рекурсивный алгоритм завершается без дальнейших вызовов.
Binomial heap
Лес min-деревьев разных рангов: на каждый ранг допускается не более одного дерева.
Binomial tree
Также: Биномиальное дерево Bₖ
Дерево, построенное связыванием двух деревьев Bₖ₋₁, одно становится ребёнком другого.
Bitonic sequence
Последовательность, которая после циклического сдвига сначала не убывает, затем не возрастает.
Big O
Асимптотическая оценка сверху: f(n) ≤ Cg(n) для всех достаточно больших n.
Real binary search
Бинарное сужение непрерывного интервала до нужной точности.
Running time
Число элементарных действий в выбранной модели вычислений.
Input
Данные, которые алгоритм получает до или в процессе выполнения.
Output
Результат выполнения алгоритма.
Network depth
Число последовательных параллельных уровней.
Two-stack queue
Также: Очередь на двух стеках
Реализация FIFO через два LIFO-контейнера.
FIFO через входной и выходной стеки.
Binary heap
Полное двоичное дерево со свойством кучи.
Binary search
Логарифмическое сужение области ответа по монотонному условию.
Binary search on answer
Поиск граничного параметра по проверке допустимости.
Doubly linked list
Список, где у каждого узла есть ссылки prev и next.
Deamortization
Преобразование алгоритма с редкими дорогими операциями в алгоритм с распределённой работой и контролируемой стоимостью каждого шага.
Recursion tree
Схема вызовов, в которой вершины соответствуют задачам, а уровни показывают вложенность.
Decision tree
Двоичная модель результатов сравнений.
Dynamic array
Массив, который перевыделяется по мере заполнения.
Dynamic programming
Метод решения задачи через сохранение ответов на повторяющиеся подзадачи и переходы между ними.
Invariant
Условие, сохраняющееся на этапах алгоритма.
Свойство, сохраняющееся после каждого шага.
Loop invariant
Утверждение, сохраняющееся перед каждой итерацией цикла.
Heap property
Для каждого узла значение его родителя не превосходит значения любого из его детей.
Inversion
Пара индексов i < j, для которой a[i] > a[j].
Cascading cut
Серия отделений помеченных вершин при decreaseKey.
Key
Значение, по которому упорядочивают объект; сам объект может содержать и другие данные.
Circular buffer
Массив с циклическим переходом индексов.
Compare-exchange
Операция минимума/максимума пары.
Comparator / compare-exchange
Двухвходовая операция, направляющая минимум в один выход, максимум — в другой.
Connected component
Класс вершин, соединённых путями в графе.
Consolidation
Слияние корней одинакового ранга после extractMin.
Constant factor
Множитель, не зависящий от размера входа n.
Path copying
Создание новых узлов на пути к месту изменения.
Bucket
Диапазон выходных позиций для конкретного ключа.
Coefficient
Числовой множитель при данной степени переменной.
Leftist heap
Двоичная min-куча с ограничением на длины кратчайших путей к пустым детям: npl(left) ≥ npl(right).
Forest
Набор непересекающихся деревьев указателей.
Best case
Минимальное время среди входов заданного размера.
Master theorem
Правило оценки типовых рекуррентностей вида T(n)=aT(n/b)+Θ(n^c).
Expectation
Среднее по возможным случайным исходам.
Matrix exponentiation
Ускорение повторного линейного преобразования.
Machine word
Единица данных фиксированной для выбранной модели разрядности. Если значение не помещается в одно слово, его обработка может требовать нескольких операций.
Median
Центральная порядковая статистика.
Median of medians
Детерминированный выбор хорошего опорного элемента по группам.
Memoization
Кэширование результатов рекурсивных подзадач при первом обращении.
Accounting method
Оплата будущих дорогостоящих действий накопленными кредитами.
Karatsuba algorithm
Способ ускорить рекурсивное умножение, заменив четыре умножения половин тремя.
Minimax
Минимизация максимума некоторого семейства функций.
Polynomial
Сумма коэффициентов при неотрицательных целых степенях переменной.
Computational model
Условный набор разрешённых операций и их стоимостей, на котором оценивают алгоритм.
Monotone predicate
Булева функция, у которой на упорядоченной области сначала все false, затем все true (или наоборот).
Lower bound
Также: Lower bound
Невозможность в данной модели работать асимптотически быстрее указанного порядка.
Индекс первого элемента массива, который не меньше x; если такого нет, возвращается n.
Big Omega
Асимптотическая оценка снизу: f(n) ≥ Cg(n) для всех достаточно больших n.
Null path length
Кратчайшее расстояние до отсутствующего ребёнка с выбранной нормировкой.
Inverse Ackermann
Очень медленно растущая функция α.
Inverse Ackermann function
Крайне медленно растущая функция, возникающая в точном амортизированном анализе DSU.
Union by rank
Подвешивание дерева меньшего ранга под дерево большего.
Singly linked list
Последовательность узлов, где каждый хранит значение и ссылку next на следующий узел.
Predecessor
Состояние, откуда получен оптимальный переход.
Queue
Контейнер с enqueue(x) и dequeue(): удаляется самый давно добавленный элемент (FIFO).
Priority queue
Абстрактная структура, которая хранит элементы с приоритетами и позволяет добавлять элемент и извлекать наименьший (или наибольший).
Transition
Также: Переход состояния
Правило, вычисляющее вклад других состояний в текущее или будущие состояния.
Persistent data structure
Структура, у которой после обновления сохраняется доступ к предыдущим версиям состояния.
Full persistence
Обновление допустимо из любой предыдущей версии.
Complete binary tree
Все уровни, кроме последнего, заполнены; последний заполняется слева направо.
Mark
Флаг потери ребёнка в Fibonacci heap.
Order statistic
Также: k-я порядковая статистика
Элемент с индексом k в мысленно отсортированном массиве; индексация с нуля.
Potential
Функция состояния, учитывающая запас накопленной работы.
Φ = число корней + 2 × число помеченных вершин.
Potential function
Неотрицательная величина, отражающая запас «отложенной» работы в текущем лесу.
Representative
Выбранный корневой элемент класса.
Prefix sum
Сумма элементов последовательности до заданной позиции.
Zero-one principle
Сеть сравнений сортирует произвольные ключи тогда и только тогда, когда сортирует все последовательности из 0 и 1.
Sift up
Восстановление свойства кучи после вставки.
Sift down
Восстановление свойства кучи после замены корня.
Forward DP
Перенос вклада в будущие состояния.
Backward DP
Сбор ответа из предыдущих состояний.
Pseudocode
Читаемая человеком запись алгоритма без строгого следования синтаксису языка программирования.
Structural sharing
Несколько версий используют одни неизменяемые узлы.
Divide and conquer
Подход: разделение задачи, рекурсивное решение подзадач и объединение результатов.
Input size
Параметр, характеризующий масштаб экземпляра задачи.
Rank
Вспомогательное значение корня, ограничивающее высоту дерева при union по рангу.
Degree / rank
Количество непосредственных детей вершины в рассматриваемой куче.
Randomized algorithm
Алгоритм, который помимо входных данных использует случайные биты или случайный выбор.
Recurrence relation
Уравнение, выражающее время работы через значения для меньших размеров.
Recurrence
Равенство, связывающее значения задачи на разных состояниях.
Recursion
Решение задачи через вызов того же алгоритма на меньшей подзадаче.
Convolution
Операция r_k = Σ p_i q_(k−i), задающая коэффициенты произведения многочленов.
Path compression
После find(x) все вершины пройденного пути начинают непосредственно указывать на найденный корень.
Bracket sequence
Последовательность, корректность вложения которой проверяется стеком.
Merge
Объединение двух отсортированных массивов в один отсортированный.
DSU
Система непересекающихся множеств.
Sorting
Перестановка элементов в неубывающем порядке относительно выбранного сравнения.
Insertion sort
Алгоритм, расширяющий отсортированный префикс вставкой очередного элемента на нужное место.
Merge sort
Рекурсивный алгоритм, разделяющий массив пополам и объединяющий отсортированные части.
Sorting network
Фиксированная схема компараторов: пары сравнений определены заранее и не зависят от входных значений.
State
Компактное описание подзадачи.
Stack
Контейнер с операциями push(x) и pop(): удаляется последний добавленный элемент (LIFO).
Data structure
Представление данных вместе с набором поддерживаемых операций и оценками их стоимости.
Tabulation
Заполнение таблицы состояний в правильном порядке.
Bottom-up DP
Вычисление состояний в таком порядке, чтобы все зависимости уже были известны.
Ternary search
Поиск экстремума унимодальной функции сравнением двух внутренних точек.
Topological order
Порядок, в котором зависимости обработаны раньше потомков.
Big Theta
Совместная асимптотическая оценка сверху и снизу с точностью до постоянных множителей.
Three-way partition
Группировка элементов меньше, равных и больше опорного.
Pointer
Ссылка на другой узел модели.
Unimodal function
Для поиска минимума — функция, которая сначала не возрастает, затем не убывает. В стандартном тернарном шаблоне ниже дополнительно требуем строгое убывание и возрастание вне области глобального минимума.
Stable sort
Не меняет относительный порядок объектов с равными ключами.
Stability
Сохранение относительного порядка равных ключей.
Fibonacci heap
Лес деревьев min-кучи с ленивым объединением и амортизированными гарантиями для ключевых операций.
Sentinel boundary
Логическая точка за массивом, не требующая обращения к памяти.
Sentinel node
Служебный узел, упрощающий граничные случаи.
Worst case
Максимальное время среди входов заданного размера.
Circular linked list
Последний узел связан с первым или с фиктивным узлом.
Blum–Floyd–Pratt–Rivest–Tarjan
Детерминированный алгоритм линейной селекции.
Снизу вверх
Вычисление состояния после зависимостей.
Counting sort
Сортировка с подсчётом частот ключей.
Decrease key
Уменьшение ключа известного узла.
Disjoint-set union
Структура, поддерживающая разбиение элементов на попарно непересекающиеся множества и операции find и union.
Проверка допустимости
Ответ, достижимо ли решение при фиксированном параметре.
First in, first out
Первым добавлен — первым извлечён.
Find
Возвращает представитель класса элемента.
Find minimum
Чтение минимального элемента без удаления.
Heap construction
Перестройка массива в кучу; снизу вверх выполняется за O(n).
Heap sort
Сортировка с помощью кучи за Θ(n log n).
Last in, first out
Последним добавлен — первым извлечён.
Least significant digit
Порядок разрядов от младшего к старшему.
Make set
Создаёт одноэлементное множество.
Max-heap
У каждого родителя значение ≥ значениям детей.
Meld
Объединение двух куч.
Min-heap
У каждого родителя значение ≤ значениям детей.
Partition
Перестройка по отношению к опорному элементу.
Сжатие пути
Перенаправление посещённых ссылок к корню.
Pivot
Опорный элемент разбиения.
Pointer machine
Модель узлов с прямым доступом через ссылки.
Selection algorithm
Поиск одного элемента заданного ранга.
Quick sort
Рекурсивная сортировка разбиением.
Radix sort
Последовательная устойчивая сортировка по цифрам ключа.
Random Access Machine
Идеализированная модель, в которой доступ к ячейке памяти по адресу занимает одну операцию.
Абстракция памяти с доступом по адресу за O(1).
Extract minimum
Также: extractMin
Удаление одного вхождения минимума.
Извлечь и удалить минимальный элемент.
Сверху вниз
Вычисление состояний по рекурсивному запросу.
Union
Объединяет два класса.
Upper bound
Первый индекс i с A[i]>x.