Изменения

Перейти к: навигация, поиск
Алгоритм Вагнера — Фишера
== Алгоритм Вагнера — Фишера ==
Для нахождения кратчайшего расстояния необходимо вычислить матрицу <tex>D</tex>, используя [[#Формула|вышеприведённую формулу]]. Её можно вычислять как по строкам, так и по столбцам. Псевдокод алгоритма, написанный при произвольных ценах замен, вставок и удалений (важно помнить, что элементы нумеруются с <tex>1</tex>):
<code>
D(0,0) = 0
=== Память ===
Алгоритм в виде, описанном выше, требует <tex>\Theta(M \cdot N)</tex> операций и такую же память, однако, если требуется только расстояние, легко уменьшить требуемую память до <tex>\Theta(\min(M,N))</tex>. Для этого надо учесть, что после вычисления любой строки предыдущая строка больше не нужна. Более того, после вычисления <tex>D(i, j) </tex> не нужны также <tex>D(i-1,0) </tex> <tex>\dots</tex> <tex>D(i-1,j-1)</tex>. Поэтому алгоритм можно переписать как
<code>
для всех i от 0 до M
Анонимный участник

Навигация