КАТЕГОРИЯ
Алгоритмы
40 материалов
Теорема о максимальном потоке и минимальном разрезеМаксимальный поток равен пропускной способности минимального разреза.Алгоритм ДейкстрыНаходит кратчайшие пути от одной вершины в графе с неотрицательными весами.Алгоритм Беллмана-ФордаНаходит кратчайшие пути и обнаруживает циклы отрицательного веса.Алгоритм Флойда-УоршеллаВычисляет кратчайшие пути между всеми парами вершин.Поиск A*Использует эвристику для направленного поиска кратчайшего пути.Поиск в ширинуОбходит граф по уровням и находит кратчайшие пути в невзвешенном графе.Поиск в глубинуИсследует ветвь графа до конца перед возвратом.Топологическая сортировкаУпорядочивает вершины ориентированного ациклического графа по зависимостям.Алгоритм Тарьяна для компонент сильной связностиНаходит компоненты сильной связности за линейное время.Алгоритм КосарайюНаходит компоненты сильной связности двумя обходами графа.Алгоритм КраскалаСтроит минимальное остовное дерево добавлением самых дешевых ребер.Алгоритм ПримаСтроит минимальное остовное дерево постепенным расширением связного множества.Система непересекающихся множествЭффективно поддерживает объединение множеств и поиск представителя.КучаПоддерживает быстрый доступ к минимальному или максимальному элементу.Очередь с приоритетомИзвлекает элементы по приоритету, а не по времени поступления.Префиксное деревоХранит строки по общим префиксам для быстрого поиска.Суффиксный массивХранит отсортированные суффиксы строки для поиска подстрок.Суффиксное деревоКомпактно представляет все суффиксы строки.Дерево отрезковПоддерживает диапазонные запросы и обновления.Дерево ФенвикаПоддерживает префиксные суммы и точечные обновления за логарифмическое время.Список с пропускамиИспользует случайные уровни для ожидаемо логарифмического поиска.Хеш-таблицаОтображает ключи в ячейки для ожидаемо постоянного доступа.Кукушкино хешированиеРазмещает ключ в одной из нескольких позиций с вытеснением конфликтов.Хеширование Робин ГудаУменьшает разброс длины пробирования перераспределением элементов.Резервуарная выборкаРавномерно выбирает фиксированное число элементов из потока неизвестной длины.Перемешивание Фишера-ЙетсаСоздает равномерную случайную перестановку массива.Алгоритм Кнута-Морриса-ПраттаИщет подстроку без повторного сравнения уже обработанных символов.Алгоритм Рабина-КарпаИспользует скользящий хеш для поиска подстрок.Алгоритм Бойера-МураПропускает части текста на основе несовпадений справа налево.Динамическое программированиеРазбивает задачу на перекрывающиеся подзадачи и сохраняет их решения.Жадный алгоритмНа каждом шаге выбирает локально лучший вариант.Разделяй и властвуйРазделяет задачу на независимые подзадачи и объединяет решения.Поиск с возвратомПеребирает варианты с ранним отказом от невозможных ветвей.МемоизацияКэширует результаты функций для повторных аргументов.Амортизированный анализОценивает среднюю стоимость последовательности операций в худшем случае.Метод потенциаловДоказывает амортизированную сложность через запас потенциальной энергии структуры.Основная теорема о рекуррентностяхОценивает асимптотику рекурсивных алгоритмов разделяй-и-властвуй.Нотация O-большоеЗадает асимптотическую верхнюю границу роста.Нотация Ω-большоеЗадает асимптотическую нижнюю границу роста.Нотация Θ-большоеЗадает точный асимптотический порядок роста.