Изменения

Перейти к: навигация, поиск

Алгоритм Флойда — Уоршалла

872 байта убрано, 03:01, 12 декабря 2011
Нет описания правки
W[i][j] = W[i][j] or (W[i][k] and W[k][j])
=== Обоснование ===
<wikitex>
Покажем, что если в отношении $R$ существовал путь $x = x_0, x_1, \dots, x_k = y$, то после работы алгоритма отношение $T$ будет содержать пару $(x, y)$. Действительно, как только параметр внешнего цикла дойдет до вершины $u$, лежащей внутри этого пути, то обязательно появится дуга, минующая эту вершину, то есть появится путь из $x$ в $y$ на одну дугу короче предыдущего. После полного просмотра элементов множества $X$ внешним циклом мы исключим все промежуточные вершины.</wikitex>
=== Сложность алгоритма ===
Три вложенных цикла работают за время <tex>\sum\limits_{n}\sum\limits_{n}\sum\limits_{n}O(1) = O(n^3)</tex>,
Анонимный участник

Навигация