Циклопедия:Списки:Алгоритмы

Материал из Циклопедии
Перейти к навигации Перейти к поиску

 → Алгоритм

Ниже приводится список алгоритмов, группированный по категориям. Более детальные сведения приводятся в списке структур данных и списке основных разделов теории алгоритмов[1]

Комбинаторные алгоритмы[править]

Общие комбинаторные алгоритмы[править]

Генерация комбинаторных объектов[править]

Алгоритмы на графах[править]

Алгоритмы нахождения максимального потока[править]

Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle n} — число вершин, Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle m} — число рёбер, Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle U} — наибольшая величина максимальной пропускной способности сети.

  • Алгоритм Форда — Фалкерсона (1956) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nmU)} .
  • Алгоритм Эдмондса — Карпа, кратчайших увеличивающихся цепей (1969) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm^2)} .
  • Алгоритм Диница (1970) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^2m)} .
  • Алгоритм Эдмондса — Карпа, локально-максимального увеличения (1972) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(m^2 \log U)} .
  • Алгоритм Диница 2 (1973) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm \log U)} .
  • Алгоритм Карзанова (1974) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^3)} .
  • Алгоритм Черкаского (1977) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^2 \sqrt m)} .
  • Алгоритм Малхотры — Кумара — Махешвари (1977) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^3)} .
  • Алгоритм Галила (1980) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^{5/3}m^{2/3})} .
  • Алгоритм Галила — Наамада (1980) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm\log^2{n})} .
  • Алгоритм Слейтора — Тарьяна (1983) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm\log n)} .
  • Алгоритм Габоу (1985) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm\log U)} .
  • Алгоритм Голдберга — Тарьяна (1988) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm\log{(n^2/m)})} .
  • Алгоритм Ахьюа — Орлина (1989) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm + n^2\log U)} .
  • Алгоритм Ахьюа — Орлина — Тарьяна (1989) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm \log {(n\sqrt U / {(m + 2)})})} .
  • Алгоритм Кинга — Рао — Тарьяна 1 (1992) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm + n^{2 + \varepsilon})} .
  • Алгоритм Кинга — Рао — Тарьяна 2 (1994) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm \log _{m/n \log n}n)} .
  • Алгоритм Черияна — Хейджрапа — Мехлхорна (1996) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^3 / \log n)} .
  • Алгоритм Голдберга — Рао (1998) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\min\{n^{2/3}, m^{1/2}\} m \log(n^2 / m) \log U)} .
  • Алгоритм Кёлнера — Мондры — Спилмана — Тена (2010) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm^{1/3}\varepsilon^{-11/3}\log^c(nm^{1/3}\varepsilon^{-11/3}))} .
  • Алгоритм Орлина 1 (2012) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(nm)} .
  • Алгоритм Орлина 2 (2012) — Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^2 / \log n)} , если Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle m = O(n)} .

Алгоритмы нахождения максимального паросочетания[править]

Алгоритмы поиска[править]

  • Алгоритм поиска A* — особый случай поиска по первому наилучшему совпадению; используется эвристика, увеличивающая скорость работы алгоритма
  • Алгоритм выбора — модификация алгоритма линейного поиска; находит Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle k} -й по величине элемент в списке;
  • Двоичное дерево поиска Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\log n)} , Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n)} в худшем случае — использует бинарное дерево для хранения элементов;
    • Красно-чёрное дерево Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\log n)} — использует дополнительный атрибут узла дерева — «цвет»
    • АВЛ-дерево Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\log n)} — в каждом узле хранит разницу высот (целое число от −1 до +1)
    • Расширяющееся дерево Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\log n)} — вместо дополнительных полей в узлах дерева «расширяющие операции» выполняются при каждом обращении к дереву.
  • Двоичный поиск Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(\log n)}  — находит элемент в отсортированном списке
  • Интерполяционный поиск (Предсказывающий поиск, Поиск по словарю)
  • Линейный поиск Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n)}  — находит элемент в неотсортированном списке
  • Локальный поиск (оптимизация)
  • Метод штрафов
  • Поиск в глубину — проходит граф ветка за веткой
  • Поиск в ширину — проходит граф уровень за уровнем
  • Поиск по первому наилучшему совпадению (англ. Best-first search) — проходит граф в порядке важности, используя очередь приоритетов
  • Троичный поиск — находит максимум или минимум функции
  • Поиск в хеш-таблице
  • Алгоритм Ли (волновой алгоритм) — поиск пути на карте.

Алгоритмы на строках[править]

Алгоритмы поиска строки[править]

Алгоритмы вычисления расстояния между строками[править]

Алгоритмы приближенного сравнения строк с шаблоном[править]

Вычисление характеристических паттернов[править]

Примерное соответствие[править]

Индексы подстрок[править]

Алгоритмы сортировки[править]

Алгоритмы слияния[править]

Минимизация булевых функций[править]

Алгоритмы сжатия данных[править]

Алгоритмы сжатия без потерь[править]

Алгоритмы сжатия с потерями[править]

Вычислительная геометрия[править]

Построение выпуклой оболочки набора точек[править]

  • Построение ВП через треугольники — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^4)} .
  • Построение ВП перебором рёбер на принадлежность — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^3)} .
  • Алгоритм сканирования Грэхема — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n\log n)} .
  • Алгоритм Экла — Туссена — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n\log n)} . Улучшение алгоритма Грэхема.
  • Алгоритм Эндрю — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n\log n)} . Улучшение алгоритма Грэхема.
  • Алгоритм быстрой оболочки — трудоёмкость Невозможно разобрать выражение (SVG с запасным PNG (MathML можно включить с помощью плагина для браузера): Недопустимый ответ («Math extension cannot connect to Restbase.») от сервера «https://wikimedia.org/api/rest_v1/»:): {\displaystyle O(n^2)} , в среднем — .
  • Алгоритм Киркпатрика — построение выпуклой оболочки набора точек на плоскости методом «разделяй и властвуй» через мосты. Трудоёмкость .
  • Построение методом «разделяй и властвуй» через построение касательных — трудоёмкость .
  • Алгоритм заворачивания подарков (Джарвиса) — трудоёмкость ,  — количество точек в выпуклой оболочке.
  • Алгоритм Киркпатрика — Зейделя[en] — трудоёмкость ,  — количество точек в выпуклой оболочке.
  • Алгоритм Чана — трудоёмкость ,  — количество точек в выпуклой оболочке.
  • Инкрементальный алгоритм (fast online hull) — через построение касательных , с помощью сбалансированного дерева — .
  • Приближённая выпуклая оболочка снизу (lower approximate hull) — методом полос. Трудоёмкость , где  — количество полос.
  • Приближённая выпуклая оболочка сверху (upper approximate hull) — методом полос. Трудоёмкость , где  — количество полос.
  • Алгоритм Ли (выпуклые оболочки) — построение выпуклой оболочки простого многоугольника через отрезание карманов. Трудоёмкость .

Триангуляция[править]

Триангуляция Делоне[править]

Квазитриангуляция[править]

Диаграмма Вороного[править]

Локализация точки[en][править]

Пересечения[править]

Вращающиеся калиперы[en][править]

Компьютерная графика[править]

Компьютерное зрение[править]

  • Epitome[en] — представление образа или видео при помощи меньшего образа или видео

Криптографические алгоритмы[править]

См. также Разделы в криптографии для аналитического глоссария
  • Криптографические функции дайджестов сообщений:
    • ГОСТ Р 34.11-94
    • MD5 Резюме сообщения 5 (Message Digest 5) Разработан Рональдом Ривестом (RFC 1321) — существует метод генерации коллизий
    • RIPEMD-160
    • SHA-1
    • HMAC — аутентификация сообщение с помощью хеш-ключа
    • Тигр — обычно используется в TTH

Цифровая обработка сигналов[править]

Разработка программного обеспечения[править]

Алгоритмы распределённых систем[править]

Алгоритмы выделения и освобождения памяти[править]

Алгоритмы в операционных системах[править]

Дисковые алгоритмы-планировщики[править]

Сетевые алгоритмы[править]

Алгоритмы синхронизации процессов[править]

Алгоритмы планирования[править]

Генетические алгоритмы[править]

Медицинские алгоритмы[править]

Нейронные сети[править]

Вычислительная теория групп[править]

Вычислительная алгебра[править]

Теоретико-числовые алгоритмы[править]

Численные алгоритмы[править]

 → Численный анализ

См. также: Список разделов численного анализа

Алгоритмы оптимизации[править]

Грамматический разбор[править]

Квантовые алгоритмы[править]

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

Теория вычислений и автоматов[править]

Другие[править]

См. также[править]

Примечания[править]

  1. В тематическом проекте есть также список терминов, относящихся к алгоритмам и структурам данных, составленный на основе словаря Американского национального института стандартов. Если Вы планируете добавить какой-либо алгоритм в этот список, убедитесь, пожалуйста, что его здесь ещё нет (возможно, алгоритм упоминается под каким-либо альтернативным названием). Внимательно посмотрите, к какой именно категории относится данный алгоритм. В случае, когда из названия не ясно, что именно делает алгоритм, напишите, пожалуйста, краткое описание. Если Вы планируете написать статью про один из алгоритмов, упомянутых в этом списке, пожалуйста, прочитайте сначала руководство «Википедия:Алгоритмы в Википедии[en]» или посмотрите несколько уже написанных статей, посвящённых алгоритмам.
  2. Barry A. Cipra The Best of the 20th Century: Editors Name Top 10 Algorithmsангл. // SIAM News. — 2000. — том 33. — № 4.

Литература[править]

  • Роберт Седжвик Фундаментальные алгоритмы на C. Анализ/Структуры данных/Сортировка/Поиск = Algorithms in C. Fundamentals/Data Structures/Sorting/Searching . — СПб.: ДиаСофтЮП, 2003. — 672 с. — ISBN 5-93772-081-4.
  • Роберт Седжвик Фундаментальные алгоритмы на C. Алгоритмы на графах = Algorithms in C. Graph Algorithms . — СПб.: ДиаСофтЮП, 2003. — 480 с. — ISBN 5-93772-082-2.
  • Sanjoy Dasgupta, Christos H. Papadimitriou, Umesh Vazirani Algorithms. — The McGraw-Hill Companies, 2006. — 320 с. — ISBN 0-07-352340-2.
  • Ричард Берд Жемчужины проектирования алгоритмов. Функциональный подход = Pearls of Functional Algorithm Design . — ДМК Пресс, 2013. — (Функциональное программирование). — ISBN 978-5-94074-867-0.
  • Препарата Ф., Шеймос М. Вычислительная геометрия: Введение = Computational Geometry An introduction . — М.: Мир, 1989. — 478 с.
  • Берг М., Чеонг О., Кревельд М., Овермарс М. Вычислительная геометрия. Алгоритмы и приложения = Computational Geometry: Algorithms and Applications . — М.: ДМК-Пресс, 2016. — 438 с. — ISBN 978-5-97060-406-9.

Ссылки[править]