Алгоритмы на графах
Кратчайшие пути
- Алгоритм Дейкстры O(N2)
- Алгоритм Дейкстры с кучей O(MlogN)
- Алгоритм Форда-Беллмана O(N3)
- Алгоритм Левита O(NM)
- Алгоритм Флойда-Уоршала O(N3)
Максимальные пути и циклы
- Путь максимальной длины в графе
- Минимальный путь, содержащий все вершины полного графа, представимого на плоскости O(n2)
- Гамильтонов цикл O(N*N!)
- Эйлеров цикл O(M + N)
Мосты и точки сочленения
- Поиск мостов O(M + N)
- Поиск точек сочленения O(M + N)
- Поиск компонентов сильной связности O(M + N)
Двудольный граф
- Алгоритм Куна O(NM)
- Алгоритм Хопкрофта-Карпа O(sqrt(N)M)
- Минимальное вершинное покрытие
Деревья
- Топологическая сортировка DAGа O(M + N)
- Поиск ближайшего общего предка двух вершин дерева O(H)
- Расстояние между двумя вершинами дерева O(H)
- Экстремальное остовное дерево - алгоритм Прима O(N2)
- Экстремально остовное дерево - алгоритм Краскала O(MlogM)
Потоки
- Алгоритм Эдмондса-Карпа (метод Форда-Фалкерсона) O(NM2)
- Алгоритм проталкивания предпотока O(N4)
- Модифицированный алгоритм проталкивания предпотока O(N3)
- Поток с ограничениями O(N3)
- Поток минимальной стоимости O(N3M)
- Максимальный поток, заданной мощности
- Покраска графа тремя цветами
- Проверка двух графов на изоморфность
- Рёберная связность.
- Вершинная связность.
По всем вопросам обращаться: rumterg@gmail.com