---
title: "Глоссарий: 773 термина по алгоритмам и структурам данных"
url: https://algopath.pro/ru/glossary
language: ru
---

# Глоссарий: 773 термина по алгоритмам и структурам данных

## A/B-тесты

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

## Abseil flat_hash_map

хеш-таблица из библиотеки Abseil от Google, хранящая пары ключ-значение с быстрым поиском и экономным расходом памяти.

## Algorithm (алгоритм)

пошаговый рецепт, который превращает то, что у тебя есть, в нужный ответ. Как кулинарный рецепт, только для данных.

## API рейт-лимитеры

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

## Array.indexOf

метод массива в JavaScript, который перебирает элементы по очереди и возвращает позицию первого совпадения или -1, если элемента нет.

## AVL-деревья

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

## AVL-индексы

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

## B-деревья БД

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

## Backtracking (перебор с возвратом)

пробуешь вариант, и если он завёл в тупик, отступаешь на шаг и пробуешь другой - как поиск выхода из лабиринта.

## BFS (поиск в ширину)

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

## Big-O

быстрый способ сказать, насколько медленнее становится метод, когда входа больше. O(n) значит «вдвое больше данных - вдвое больше работы». O(n^2) - «вдвое больше данных - работы в четыре раза больше». O(log n) - «вдвое больше данных - всего один лишний шаг». Важна форма роста, а не секунды на часах.

## Binary search (бинарный поиск)

поиск в отсортированном списке, где ты каждый раз режешь область поиска пополам, как в игре «больше / меньше».

## Binary search tree (BST, двоичное дерево поиска)

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

## Bitmask (битовая маска)

использование битов вкл/выкл внутри одного числа как компактного ряда переключателей «да/нет».

## Brute force (полный перебор)

очевидное решение, которое просто пробует все варианты подряд. Всегда работает, но часто медленное.

## C qsort

стандартная функция сортировки в языке C: ты даёшь ей массив и правило сравнения, она расставляет элементы по порядку.

## C++ make_heap

функция C++, которая переставляет элементы массива в структуру кучи, чтобы всегда быстро доставать наибольший из них.

## Canary-деплой

выкатка новой версии программы сначала небольшой доле пользователей; если ошибок нет, её постепенно раскатывают на всех.

## Cocktail sort

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

## CPython dict

словарь в основной реализации Python (CPython): хранит пары ключ-значение и находит значение по ключу почти мгновенно за счёт хеширования.

## Data structure (структура данных)

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

## Deque (дек)

линия, в которую можно добавлять и из которой можно брать с обоих концов.

## DFS (поиск в глубину)

идёшь одним путём как можно дальше, потом отступаешь и пробуешь другой, с помощью рекурсии или стека.

## Dijkstra

алгоритм Дейкстры находит кратчайшие пути от одной точки до всех остальных в графе с неотрицательными весами рёбер.

## DOM

представление веб-страницы в виде дерева объектов, с которым работает браузер и JavaScript, чтобы менять содержимое и вид страницы.

## DOM-деревья

та самая древовидная структура страницы: каждый тег это узел с детьми, и по ней браузер понимает, что и где рисовать.

## DP-решатели

программы, решающие задачу методом динамического программирования: разбивают её на мелкие подзадачи, считают каждую один раз и запоминают ответ.

## Dynamic programming (динамическое программирование, DP)

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

## Edge case (краевой случай)

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

## git bisect

команда git, которая находит коммит с багом бинарным поиском по истории: переключается на коммит посередине, ты помечаешь «хорошо» или «плохо», и диапазон сокращается вдвое, пока не останется один.

## git diff

команда git, показывающая построчно, что изменилось между двумя версиями файлов: что добавлено и что удалено.

## git merge-base

команда git, которая находит последний общий коммит двух веток, от которого они начали расходиться.

## Graph (граф)

точки, соединённые линиями, и линии могут образовывать петли. Дороги между городами, друзья в соцсети, зависимости задач - всё это графы.

## Greedy (жадный)

хватать на каждом шаге вариант, который выглядит лучшим, и надеяться, что весь итог выйдет лучшим. Надёжно только когда можешь это доказать.

## grep

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

## gzip

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

## Hash table / hash map (хеш-таблица)

поиск, который находит значение по ключу почти мгновенно, как словарь, где ты сразу открываешь нужное слово. В JS: `Map` и `Object`.

## Heap / priority queue (куча / очередь с приоритетом)

стопка, которая всегда выдаёт следующим самый маленький (или самый большой) элемент, не сортируя всё. Хороша для списков «топ-5» и живых потоков данных.

## heapq.heapify

функция Python, которая за один проход перестраивает обычный список в кучу, чтобы дальше быстро доставать наименьший элемент.

## Held-Karp TSP

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

## ID фиксированной ширины

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

## In place (на месте)

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

## Introsort

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

## Invariant (инвариант)

то, что ты держишь истинным на каждом шаге цикла; именно поэтому цикл вообще работает.

## IP-маршрутизация

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

## Java HashMap

структура из стандартной библиотеки Java, хранящая пары ключ-значение и находящая значение по ключу за счёт хеширования.

## JavaScript Map

встроенная в JavaScript коллекция пар ключ-значение, где ключом может быть что угодно и значение достаётся по ключу быстро.

## JavaScript Set

встроенная в JavaScript коллекция уникальных значений: одинаковые не повторяются, а проверка «есть ли элемент» быстрая.

## JPEG

формат сжатия фотографий, который выбрасывает мелкие детали, незаметные глазу, ради меньшего размера файла.

## k-путевое слияние

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

## LCA

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

## Linux rb_tree

красно-чёрное дерево внутри ядра Linux: самобалансирующееся дерево, на котором ядро держит отсортированные наборы, например планировщик задач.

## lower_bound/upper_bound

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

## LRU-кэши

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

## Memoization (мемоизация)

запоминание уже посчитанных ответов, чтобы тот же вопрос второй раз отвечался мгновенно. Первый шаг от рекурсии к динамическому программированию.

## Modular arithmetic (модульная арифметика)

счёт, который замыкается по кругу, как часы, перескакивающие с 12 обратно на 1. Нужен, чтобы огромные числа не разрастались.

## Monotonic stack/queue (монотонный стек/очередь)

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

## MST Краскала

алгоритм Краскала строит минимальное остовное дерево: соединяет все точки графа с наименьшей суммарной длиной рёбер, добавляя рёбра от самых дешёвых.

## n

насколько велик вход: сколько элементов ты обрабатываешь.

## Negative case (негативный случай)

тест, где правильный ответ это «ничего не найдено» или «невозможно», чтобы проверить, что код справляется с пустотой и провалом, а не только с удачным случаем.

## OLAP-кубы

заранее посчитанные сводки данных по разным разрезам (по времени, региону, товару), чтобы аналитические отчёты строились мгновенно.

## PNG

формат картинок со сжатием без потерь: размер файла меньше, но ни один пиксель не искажается, в отличие от JPEG.

## Pointer / index (указатель / индекс)

метка на месте в списке, как палец, указывающий на один элемент. «Сдвинуть указатель» значит показать на другое место.

## Prefix sum (префиксная сумма)

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

## Python dict

словарь в Python: коллекция пар ключ-значение, где значение находится по ключу почти мгновенно.

## Python heapq

модуль Python для работы с кучей: держит элементы так, что наименьший всегда достаётся первым, удобно для очередей с приоритетом.

## Queue (очередь)

линия, где кто пришёл первым, того и обслужат первым, как очередь в магазине.

## quickselect

алгоритм, который находит k-й по величине элемент, не сортируя весь массив целиком, а отбрасывая на каждом шаге ненужную половину.

## React reconciler

часть React, которая сравнивает новое состояние интерфейса со старым и меняет в реальной странице только то, что действительно изменилось.

## React useMemo

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

## Recursion (рекурсия)

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

## RSA

алгоритм шифрования с открытым ключом: одним ключом сообщение шифруют, другим (секретным) расшифровывают, на этом держится защита данных в интернете.

## rsync

утилита для копирования и синхронизации файлов, которая передаёт только изменившиеся куски, а не весь файл заново.

## Scaffold (каркас)

готовая к запуску среда для практики на каждый шаг (стартовый код + тесты), чтобы ты сразу решал, а не настраивал.

## Seam carving

способ менять размер картинки, удаляя не ряды пикселей целиком, а извилистые линии через наименее заметные места, чтобы важные объекты не искажались.

## Set (множество)

мешок элементов без повторов, где «оно тут есть?» проверяется мгновенно. В JS: `Set`.

## Skip-списки

структура из нескольких уровней связанных списков-«скачков», позволяющая искать в отсортированных данных быстро, почти как в дереве, но проще в реализации.

## SLA-трекинг

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

## Sliding window (скользящее окно)

отрезок списка `[left, right]`, который ты двигаешь: добавляешь элемент справа, убираешь слева, вместо того чтобы каждый раз пересчитывать весь отрезок.

## Space complexity (пространственная сложность)

сколько лишней памяти нужно методу, когда вход становится больше.

## SQL GROUP BY

оператор SQL, который собирает строки в группы по общему признаку и считает по каждой группе итог: сумму, количество, среднее.

## Stack (стек)

стопка, из которой ты всегда берёшь верхнее. Как стопка тарелок: кто лёг последним, того снимут первым.

## std::map

контейнер C++, хранящий пары ключ-значение с ключами в отсортированном порядке, обычно на красно-чёрном дереве.

## std::map erase

метод C++, удаляющий из std::map запись по ключу и сохраняющий остальные ключи в отсортированном порядке.

## std::priority_queue

очередь с приоритетом в C++: на каждом шаге отдаёт наибольший (или наименьший) из лежащих в ней элементов, построена на куче.

## std::sort

стандартная функция сортировки в C++, которая расставляет элементы контейнера по порядку, обычно на основе introsort.

## Stock span

задача о том, сколько дней подряд до сегодняшнего цена акции была не выше текущей; типичный пример на стек.

## Tab-дополнение в shell

когда в терминале нажимаешь Tab и оболочка сама дописывает имя файла или команды по первым введённым буквам.

## Tier (уровень)

какую часть трудного ты берёшь на себя на шаге: пишешь ядро сам (1), чинишь подсаженный баг (2) или разбираешь готовый код (3).

## Time complexity (временная сложность)

как быстро растёт объём работы, когда вход становится больше.

## Timsort

алгоритм сортировки Python и Java: находит уже упорядоченные куски данных и умно сливает их, поэтому быстр на почти отсортированных списках.

## Top-k запросы

запрос, возвращающий не все данные, а только k лучших: например, 10 самых популярных товаров или самых частых слов.

## Topological sort (топологическая сортировка)

расставить задачи так, чтобы ничего не начиналось раньше того, от чего оно зависит. Как одеваться: сначала носки, потом ботинки.

## Tree (дерево)

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

## TreeMap

коллекция пар ключ-значение в Java, которая держит ключи отсортированными, так что можно быстро находить соседние и обходить всё по порядку.

## Trie (бор, префиксное дерево)

дерево, собранное из букв слов, чтобы быстро находить всё, что начинается на «ка…». Именно оно даёт автодополнение.

## Two pointers (два указателя)

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

## Undo/redo

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

## Union-find (система непересекающихся множеств)

следит, какие элементы в одной группе, и почти мгновенно объединяет две группы или отвечает на «в одной группе?».

## XOR-контрольные суммы

способ проверить целостность данных: все байты складывают операцией XOR, и если результат не совпал с ожидаемым, значит данные повредились.

## Автодополнение

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

## Автодополнение в IDE

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

## Автозамена

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

## Агрегация логов

сбор записей-логов со множества серверов в одно место, чтобы искать по ним и разбирать сбои централизованно.

## Алерты по метрикам

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

## Аллокаторы памяти

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

## Анализ диска

подсчёт, какие папки и файлы занимают больше всего места на диске, чтобы понять, что можно удалить.

## Анализ сигналов

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

## Арифметика дробей

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

## Базовые линии метрик

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

## Базы данных

программы для хранения больших объёмов данных так, чтобы их можно было надёжно записывать, искать и обновлять.

## Балансировка нагрузки

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

## Батчинг продюсера

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

## Биоинформатика

обработка биологических данных, прежде всего последовательностей ДНК и белков, с помощью алгоритмов и программ.

## Биржевые стаканы

список текущих заявок на покупку и продажу актива по разным ценам, по которому биржа сводит сделки.

## Брокеры сообщений

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

## Бронирование в календаре

проверка, свободен ли промежуток времени, и его резервирование, чтобы две встречи не наложились друг на друга.

## Бюджеты повторов

ограничение на число повторных попыток запроса при сбое, чтобы система не завалила себя же лавиной ретраев.

## Бюджеты рейт-лимита

выделенный лимит запросов на период для клиента; израсходовал его - жди, пока восстановится.

## Валютный арбитраж

заработок на разнице курсов: цепочка обменов валют по кругу, которая возвращает больше денег, чем было вложено.

## Веб-краулеры

программы, которые сами ходят по ссылкам с сайта на сайт и скачивают страницы, например для поисковика.

## Ведёрная статистика

подсчёт данных по диапазонам-«вёдрам» (например, сколько запросов уложилось в 0-100 мс, 100-200 мс), чтобы видеть распределение.

## Видеомонтаж

сборка и обработка видео: нарезка, склейка фрагментов, добавление эффектов и звука.

## Внешняя сортировка

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

## Внешняя сортировка слиянием

внешняя сортировка, где отсортированные на диске куски затем сливаются в один отсортированный файл слиянием.

## Встраиваемая сортировка

сортировка, работающая прямо в исходном массиве без выделения дополнительной памяти под копию.

## Встроенные системы

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

## Вход без учёта регистра

сравнение текста, при котором «Иван» и «иван» считаются одинаковыми, потому что регистр букв игнорируется.

## Выбор кворума

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

## Выборка из потока

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

## Выдача наличных в банкомате

подбор купюр под запрошенную сумму так, чтобы выдать её нужным набором банкнот.

## Выдача сдачи

набор минимального числа монет или купюр, чтобы вернуть покупателю нужную сумму.

## Выравнивание ДНК

сопоставление двух цепочек ДНК буква к букве, чтобы найти совпадения и различия между ними.

## Генерация ключей

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

## Генерация лабиринтов

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

## Генерация маршрутов

построение пути от старта до цели по карте или сети дорог.

## Генерация ходов

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

## Гистограммы

подсчёт, сколько значений попадает в каждый диапазон, чтобы увидеть распределение данных.

## Графы зависимостей

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

## Группировка в аналитике

сведение записей в группы по общему признаку, чтобы посчитать итоги по каждой группе.

## Дашборды аналитики

экран с цифрами и графиками по данным продукта, чтобы следить за поведением пользователей.

## Дашборды метрик

экран с ключевыми показателями системы в реальном времени.

## Дашборды мониторинга

экран, показывающий состояние серверов и сервисов, чтобы вовремя заметить сбой.

## Движок V8

движок от Google, который выполняет JavaScript в Chrome и Node.js.

## Двудольное паросочетание

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

## Дедуп в антифроде

отсев повторных или дублирующих операций при поиске мошенничества, чтобы не считать одно событие дважды.

## Дедуп логов

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

## Дедупликация

удаление повторов, чтобы каждая уникальная запись хранилась один раз.

## Дедупликация бэкапов

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

## Дедупликация записей

объединение записей об одном и том же объекте в одну, чтобы убрать дубли.

## Деревья прав

иерархия доступов, где право на верхнем уровне распространяется на всё, что ниже.

## Детекция аномалий

поиск значений, которые сильно выбиваются из обычной картины, чтобы поймать сбой или атаку.

## Диаметр графа

самое длинное из кратчайших расстояний между двумя точками сети, то есть насколько она «широкая».

## Диаметр сети

наибольшее число шагов между двумя узлами сети по кратчайшему пути.

## Диспетчеры печати

программа, которая ставит задания на печать в очередь и отправляет их на принтер по порядку.

## Диффи-Хеллман

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

## Диффинг Virtual-DOM

сравнение старой и новой версий интерфейса в памяти, чтобы обновить на экране только то, что реально изменилось.

## Дорожные сети

карта дорог как набор перекрёстков и связей между ними для расчёта маршрутов.

## Достижимость в игре

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

## Живые ленты

обновляемый в реальном времени поток записей, например новостная лента или чат.

## Загрузка грузов

подбор предметов в ограниченный объём или вес так, чтобы уместить наиболее ценный набор.

## Заливка

закраска связной области одного цвета, начиная от выбранной точки и расходясь на соседние клетки.

## Заливка цветом

инструмент «ведро», который заполняет цветом всю область одинакового оттенка вокруг точки клика.

## Запросы минимума на отрезке

быстрый ответ на вопрос «какое наименьшее значение на этом участке массива» без перебора всего участка каждый раз.

## Защита от повторов

отсев повторно присланных запросов или сообщений, чтобы одно действие не выполнилось дважды.

## Игровые лидерборды

таблица лучших результатов игроков, отсортированная по очкам.

## Игры со словами

игры вроде составления слов из букв, где нужно быстро проверять слова по словарю.

## Индексы БД

служебная структура в базе данных, которая ускоряет поиск строк без просмотра всей таблицы.

## Индексы в БД

вспомогательный указатель по столбцу, чтобы база находила нужные строки быстро.

## Индексы по диапазону

индекс, заточенный под запросы «все значения от и до», например по дате или цене.

## Интегральные изображения

предпосчитанная таблица сумм по картинке, чтобы мгновенно считать сумму яркости в любом прямоугольнике.

## История браузера

список посещённых страниц с переходами назад и вперёд.

## Карты в Go

встроенный в язык Go тип для хранения пар «ключ - значение» с быстрым доступом по ключу.

## Кассы

обслуживание очереди покупателей, где расчёт сдачи и очередь клиентов надо вести по порядку.

## Кластеризация

разбиение данных на группы похожих между собой объектов без заранее заданных ярлыков.

## Кластеризация записей

объединение похожих записей в группы, чтобы найти дубли или связанные объекты.

## Ключи идемпотентности

уникальная метка на запросе, по которой сервер понимает, что этот запрос уже выполнял, и не повторяет действие.

## Коды коррекции ошибок

добавление избыточных данных, чтобы находить и чинить повреждённые биты без повторной пересылки.

## Кольцевые буферы

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

## Кольцевые индексы

счётчик позиции, который по достижении конца снова возвращается к нулю (по кругу).

## Команда du

команда Unix, показывающая, сколько места на диске занимают файлы и папки.

## Команда uniq

команда Unix, убирающая подряд идущие одинаковые строки из текста.

## Комбинации фичефлагов

перебор сочетаний включённых и выключенных настроек-переключателей, чтобы проверить их совместное поведение.

## Компакция LSM

слияние мелких отсортированных файлов базы в более крупные, чтобы убрать устаревшие записи и ускорить чтение.

## Компакция БД

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

## Компиляторы

программа, которая переводит исходный код на язык, понятный машине.

## Конвейеры задач

цепочка шагов обработки, где выход одного шага идёт на вход следующему.

## Консистентное хеширование

способ раскидывать данные по серверам так, чтобы при добавлении или удалении сервера пришлось переносить лишь малую часть.

## Конструкторы запросов

библиотека, которая собирает SQL-запрос из кода по частям, вместо ручного написания строки запроса.

## Контроль дрейфа конфигов

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

## Красно-черные деревья

самобалансирующееся отсортированное дерево, которое перестраивается при вставке и удалении, чтобы поиск оставался быстрым при любом порядке добавления.

## Криптография

методы шифрования и подписи данных, чтобы их нельзя было прочитать или подделать.

## Кэш AST

хранение уже разобранного дерева кода, чтобы не разбирать один и тот же исходник заново.

## Кэши на WeakMap

кэш, где ключ - объект, и запись сама исчезает, когда объект больше нигде не используется, чтобы не течь по памяти.

## Кэши ответов

хранение готовых ответов сервера, чтобы отдавать их повторно без нового вычисления.

## Лидерборды

таблица рейтинга, отсортированная по результату участников.

## Лимиты облачных затрат

ограничение расходов на облако, чтобы счёт не вышел за заданный бюджет.

## Маршрутизация OSPF

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

## Маршрутизация RIP

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

## Маршрутизация в ЦОД

выбор пути для трафика между серверами внутри дата-центра.

## Маршруты перелётов

подбор перелётов с пересадками из точки А в точку Б по цене или времени.

## Маскирование логов

скрытие чувствительных данных (паролей, карт) в журналах, чтобы они не попали в открытый вид.

## Матрицы тестов CI

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

## Медианные фильтры

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

## Миграции БД

пошаговое изменение структуры базы данных с возможностью откатить, чтобы обновлять схему без потери данных.

## Минимум в окне

поиск наименьшего значения в скользящем участке данных по мере его сдвига.

## Мониторинг p50

слежение за медианным (типичным) временем ответа, ниже которого укладывается половина запросов.

## Мониторинг аптайма

проверка, что сервис доступен, и учёт времени, когда он был недоступен.

## Мониторинг метрик

постоянный сбор и отслеживание показателей системы, чтобы замечать проблемы.

## Навигационные движки

программа, которая строит маршрут и ведёт по нему с учётом дорог и пробок.

## Навигация по картам

прокладка пути из одной точки в другую по карте с учётом дорог.

## Навигация роботов

расчёт пути для робота в пространстве с обходом препятствий.

## Назначение задач

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

## Назначение работ

привязка заданий к работникам или машинам с наилучшим общим результатом.

## Наследование ролей

схема прав, где роль наследует доступы вышестоящей, чтобы не задавать их заново.

## Настройка rate-limit

задание порога, сколько запросов в единицу времени разрешено, чтобы защитить сервис от перегрузки.

## Небольшие таблицы лидеров

компактный рейтинг на немного участников, отсортированный по очкам.

## Нечёткий поиск

поиск, который находит совпадения даже с опечатками и неточным написанием.

## Нормализация поиска

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

## Обнаружение deadlock

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

## Обнаружение абьюза

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

## Обнаружение взаимоблокировок

то же, что deadlock: находит группу процессов, которые взаимно ждут друг друга и не могут продолжить работу.

## Обнаружение вторжений

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

## Обнаружение овербукинга

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

## Обнаружение ошибок

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

## Обнаружение пиков

поиск в потоке чисел (нагрузка, трафик, цена) моментов резкого всплеска, чтобы отреагировать на аномалию.

## Обработка изображений

изменение и анализ картинок пиксель за пикселем: фильтры, поворот, распознавание, сжатие.

## Обработка сигналов

работа с потоком измерений (звук, радио, датчики): фильтрация шума и выделение полезной части.

## Обрезка ленты

удаление старых записей из ленты или журнала, чтобы держать только последние и не заполнять память.

## Обход DOM

проход по дереву элементов веб-страницы, чтобы найти или изменить нужные узлы.

## Обход игровой доски

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

## Обход файловой системы

проход по папкам и вложенным папкам, чтобы найти или обработать все файлы.

## Ограниченные хвосты логов

хранение только последних N строк журнала с выбрасыванием старых, чтобы лог не рос бесконечно.

## Окна потока

разбиение непрерывного потока данных на куски за отрезок времени, чтобы считать статистику по каждому такому окну.

## Окна уникальных значений

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

## Оргструктуры

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

## Откат introsort

переключение алгоритма сортировки на запасной метод (например heapsort), когда быстрая сортировка начинает работать слишком медленно.

## Отсортированные таблицы поиска

заранее упорядоченные таблицы данных, по которым можно быстро искать бинарным поиском.

## Очереди задач

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

## Очистка текста

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

## Пайплайны логов

цепочка этапов, через которую проходят записи журнала: сбор, фильтрация, разбор, хранение.

## Парные скобки в редакторе

проверка, что каждой открывающей скобке соответствует закрывающая, чтобы подсветить пары и найти ошибку.

## Парсеры JSON/XML

программы, которые разбирают текст в формате JSON или XML в структуру данных, понятную коду.

## Партиции Kafka

деление потока сообщений Kafka на части, которые обрабатываются параллельно на разных машинах.

## Переговорные

комнаты для встреч, которые бронируют по времени, поэтому нужна проверка на пересечение броней.

## Пересечения календаря

поиск наложений между событиями в расписании, чтобы найти конфликты или общее свободное время.

## Перколяция

модель просачивания через сетку связанных ячеек; используется, чтобы понять, соединены ли две стороны через открытые пути.

## Перцентили

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

## Пики метрик

резкие всплески на графиках показателей системы, которые надо замечать для мониторинга.

## Планирование

распределение задач по времени и ресурсам так, чтобы всё уместилось и не конфликтовало.

## Планирование задач

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

## Планирование маршрутов

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

## Планирование машин

распределение работ по станкам или серверам так, чтобы они были загружены эффективно.

## Планирование мощности

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

## Планирование ресурсов

распределение ограниченных ресурсов между задачами без конфликтов и перегрузки.

## Планировщики задач

программы, запускающие задания по расписанию или по мере освобождения ресурсов.

## Планировщики запросов

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

## Планировщики ОС

часть операционной системы, которая решает, какому процессу дать процессор в каждый момент.

## Платёжные терминалы

устройства приёма оплаты картой, которым нужна быстрая и надёжная обработка транзакций.

## Повёрнутые логи

журналы с ротацией: старый файл закрывается и начинается новый, чтобы файлы не разрастались.

## Поворот изображений

разворот картинки на угол (обычно 90 или 180 градусов) переставлением пикселей.

## Подсказки поиска

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

## Подсчёт инверсий

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

## Подсчёт уникальных посетителей

определение, сколько разных людей зашло на сайт, без учёта повторных заходов.

## Поиск в конфиге

нахождение нужного параметра среди настроек программы.

## Поиск в редакторе

функция Find в текстовом редакторе: находит вхождения слова или шаблона в тексте.

## Поиск версии

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

## Поиск плагиата

сравнение текста с другими, чтобы найти совпадающие или переписанные фрагменты.

## Поиск по таблице

нахождение строки в таблице по ключу или значению.

## Поиск пути в играх

расчёт маршрута персонажа от точки к точке по игровой карте в обход препятствий.

## Поиск пути на сетке

нахождение дороги между клетками сетки, огибая стены (алгоритмы вроде BFS или A*).

## Поиск пути по сетке

то же: прокладка маршрута между клетками поля с препятствиями.

## Поиск сообществ

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

## Поисковые запросы

слова, которые пользователь вводит в поиск; система по ним находит подходящие результаты.

## Поисковые индексы

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

## Показ матриц

вывод двумерной таблицы чисел на экран, часто в определённом порядке обхода.

## Пользовательские словари

личные списки слов (например для проверки орфографии), которые пользователь добавляет сам.

## Попарное тестирование

метод тестирования, при котором проверяют все пары значений параметров, а не все комбинации, чтобы сократить число тестов.

## Потоки Kafka

непрерывные потоки сообщений в Kafka, которые приложения читают и обрабатывают на лету.

## Потоковая обработка

обработка данных по мере их поступления, не дожидаясь накопления всего набора.

## Потоковые таблицы лидеров

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

## Почти отсортированные списки

списки, где почти всё уже упорядочено; на них некоторые сортировки работают особенно быстро.

## Почтовые индексы

коды регионов в адресах, по которым сортируют и маршрутизируют почту.

## Права Unix

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

## Правила фаервола

список условий, по которым сетевой экран пропускает или блокирует трафик.

## Приватные поля классов

данные объекта, доступные только изнутри его класса, чтобы скрыть внутреннее устройство от остального кода.

## Проверка в стиле Boggle

поиск слов на буквенной сетке по соседним клеткам, как в игре Boggle.

## Проверка двойных броней

выявление случаев, когда один ресурс или время забронированы дважды.

## Проверка индексов

контроль, что обращение к элементу массива не выходит за его границы.

## Проверка орфографии

сравнение слов текста со словарём, чтобы найти опечатки и предложить исправления.

## Проверка палиндромов

определение, читается ли строка одинаково слева направо и справа налево.

## Прокладка сетей

планирование, как соединить точки линиями связи или проводами с наименьшими затратами.

## Просмотр логов

чтение и навигация по журналам системы для поиска событий и ошибок.

## Разбор хэштегов

выделение тегов вида #слово из текста поста для группировки и поиска.

## Разводка чипов

размещение элементов и прокладка соединений на микросхеме так, чтобы всё поместилось и связалось.

## Разметка изображений

расстановка меток на картинках (что где изображено) для обучения моделей или каталогизации.

## Разрешение зависимостей

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

## Ранжирование поиска

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

## Раскрой материала

расчёт, как разрезать лист или рулон на нужные куски с минимумом отходов.

## Расписание на две смены

распределение работников по двум сменам так, чтобы покрыть все часы без переработок.

## Расписания экзаменов

составление графика экзаменов без наложений для студентов и аудиторий.

## Распределение бюджета

деление ограниченных денег между статьями расходов с наибольшей отдачей.

## Распределение регистров

в компиляторе: назначение переменных на ограниченное число регистров процессора.

## Редакторы

программы для написания и правки текста или кода.

## Резервы склада

запас товара, отложенный или доступный на складе, который надо отслеживать, чтобы не продать лишнего.

## Рекламные слоты

места на странице или во времени под показ рекламы, которые распределяют между объявлениями.

## Рендеринг тепловых карт

отрисовка данных цветом (где горячее, там ярче), чтобы наглядно показать плотность или интенсивность.

## Решатели головоломок

программы, находящие решение логической задачи перебором и отсечением неверных вариантов.

## Решатели судоку

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

## Рисунок одним росчерком

задача нарисовать фигуру, не отрывая карандаша и не проводя по одной линии дважды; сводится к поиску такого пути в графе (эйлеров путь).

## Сборщики модулей

инструменты, которые собирают множество файлов кода и их зависимости в один или несколько готовых к загрузке файлов (например Webpack, Vite).

## Сброс кэша

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

## Сверка реестров

сравнение двух списков записей, чтобы найти расхождения: что есть в одном и нет в другом.

## Сверка счетов

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

## Свёртки временных рядов

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

## Свёртки метрик

агрегирование потока измерений за окно времени (среднее, сумма, максимум) для графиков и мониторинга.

## Свертки таксономии

сворачивание дерева категорий: подсчёт или объединение значений вверх по веткам классификации.

## Свободно/занято в календаре

отметка, в какие интервалы времени человек занят, а в какие свободен, для подбора времени встречи.

## Сворачивание РНК

предсказание того, как цепочка РНК складывается в пространстве, образуя пары между своими участками.

## Сериализация DOM

превращение дерева элементов веб-страницы обратно в текст HTML, чтобы сохранить или передать его.

## Сериализация матрицы

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

## Сетевые буферы

участки памяти, где временно копятся данные, пришедшие или уходящие по сети, пока их обрабатывают.

## Сетки доступности

структура, которая хранит, какие ресурсы (места, номера, слоты) свободны, а какие заняты.

## Сжатие изображений JPEG

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

## Системы бронирования

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

## Системы сборки

инструменты, которые по описанию проекта автоматически компилируют код и собирают готовую программу (например Make, Gradle).

## Сканирование логов

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

## Скользящие средние

среднее значение за последние N точек, которое пересчитывают на каждом шаге, чтобы сгладить колебания данных.

## Скользящие хеши

способ быстро пересчитать хеш окна текста при сдвиге на один символ, не считая заново весь кусок; нужен для поиска подстрок.

## Слияние аккаунтов

объединение двух учётных записей одного человека в одну с сохранением их данных.

## Слияние версий

сведение изменений из двух веток кода в одну общую версию.

## Слияние логов

объединение записей из нескольких журналов в один общий поток, упорядоченный по времени.

## Соотношения сторон

отношение ширины к высоте изображения или экрана (например 16:9).

## Сопоставление платежей

привязка входящих платежей к счетам или заказам, которые они оплачивают.

## Сортировка в БД

упорядочивание строк результата запроса по нужному полю (то, что делает `ORDER BY`).

## Сортировка слиянием

алгоритм сортировки: список делят пополам, сортируют каждую половину, затем сливают их в один упорядоченный.

## Сортировка столбцов

упорядочивание строк таблицы по значениям выбранного столбца.

## Сохранение игры

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

## Соцграфы

представление людей и связей между ними как графа: узлы это люди, рёбра это дружба или подписка.

## Соцкруги

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

## Списки конфигов

наборы настроек программы, хранящиеся списком.

## Списки смежности

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

## Сравнение текста

поиск различий между двумя версиями текста: что добавлено, удалено, изменено.

## Стабильная сортировка

сортировка, которая сохраняет исходный порядок элементов с одинаковым ключом.

## Стек вызовов

список функций, которые сейчас выполняются одна внутри другой; программа помнит, куда вернуться после каждой.

## Суффиксные массивы

отсортированный список всех суффиксов строки; помогает быстро искать подстроки и повторы в тексте.

## Таблицы

данные, разложенные по строкам и столбцам.

## Таблицы лидеров

список участников, отсортированный по очкам, с их местами (рейтинг игроков).

## Таблицы маршрутизации

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

## Таблицы маршрутов

таблица соответствий между адресами (URL или сетевыми) и тем, кто их обрабатывает.

## Таблицы символов

таблица, где компилятор хранит имена переменных и функций программы вместе с их данными.

## Таблицы тарифов

таблица цен по категориям, зонам или условиям, по которой считают стоимость.

## Таймер-колеса

структура для эффективного управления множеством таймеров: их раскладывают по ячейкам «колеса» по времени срабатывания.

## Текстовые редакторы

программы для набора и правки текста или кода.

## Тестовые матрицы

таблица сочетаний условий (версий, браузеров, настроек), которые нужно проверить тестами.

## Тесты гонок

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

## Токенизаторы

инструменты, которые разбивают текст на отдельные единицы (слова, символы, знаки) для дальнейшей обработки.

## Торговая аналитика

анализ данных о торгах и сделках для решений о покупке и продаже.

## Торговые SMA

простое скользящее среднее цены за период, которое трейдеры используют как индикатор тренда.

## Торговые автоматы

программы, которые сами совершают сделки на бирже по заданным правилам.

## Торговые дашборды

экраны с графиками и показателями торгов в реальном времени.

## Транзитивное замыкание

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

## Трейдинг-дашборды

экраны с рыночными данными и метриками для трейдера.

## Трендовые темы

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

## Учёт DOM-узлов

подсчёт и отслеживание элементов дерева веб-страницы, чтобы контролировать её размер и производительность.

## Фаза reduce

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

## Фаза поразрядной сортировки

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

## Файловые менеджеры

программы для просмотра и работы с файлами и папками (например Проводник, Finder).

## Фильтры Блума

компактная структура, которая быстро отвечает «элемента точно нет» или «возможно есть», экономя память при проверке принадлежности.

## Фильтры компьютерного зрения

операции над изображением (размытие, выделение краёв), которые применяют, обрабатывая каждый пиксель с соседями.

## Фиче-флаги

переключатели, которые включают или выключают функции приложения без выпуска новой версии.

## Флаги TCP

служебные биты в заголовке TCP-пакета (SYN, ACK, FIN и другие), которые управляют состоянием соединения.

## Форматы передачи

соглашения о том, как упаковать данные для отправки по сети (например JSON, Protobuf).

## Хеш-таблицы

структура для хранения пар «ключ-значение», где по ключу почти мгновенно находят значение через хеш-функцию.

## Хранилища временных рядов

базы данных, заточенные под хранение измерений с метками времени (метрики, датчики).

## Хранилища конфигов

места, где централизованно хранятся настройки приложений.

## Хранилища сессий

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

## Ценовые ленты

поток обновлений цен на инструменты в реальном времени.

## Цепочка матриц

задача найти самый дешёвый порядок перемножения нескольких матриц подряд, поскольку от порядка зависит объём вычислений.

## Циклические импорты

ситуация, когда модуль A подключает модуль B, а B обратно подключает A, из-за чего загрузка зацикливается.

## Чистка таблиц

удаление устаревших, лишних или повреждённых записей из таблиц базы данных.

## Шаблонизаторы

инструменты, которые подставляют данные в заготовку-шаблон и выдают готовый текст или HTML.

## Шардирование данных

разбиение большой базы на части (шарды) по разным серверам, чтобы справляться с нагрузкой и объёмом.

## Шардирование кэша

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

## Экранные буферы

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

## Ядро Linux

центральная часть операционной системы Linux, которая управляет памятью, процессами и доступом к оборудованию.
