Левенштајново растојање — разлика између измена

Садржај обрисан Садржај додат
Ред 54:
 
=== Итеративно са целом матрицом ===
Израчунавање Левенштајновог растојања је базирано на запажању да ако резервишемо матрицу за чување растојања између свих префикса првогпрве стринганиске и свих префикса другогдруге, онда можемо да израчунамо вредности у матрици помоћу динамичког програмирања и тако нађемо растојање између два пунапуне стринганиске.
Овај алгоритам је пример bottom-up"одоздо на горе" динамичког програмирања, као стошто је дискутовано, са варијацима, 1974. године у ''The [[String-to-string correction problem]]'' од Robert A. Wagner and Michael J. Fischer.<ref>{{citation |first=Robert A. |last=Wagner |first2=Michael J. |last2=Fischer |author2-link=Michael J. Fischer |title=The String-to-String Correction Problem |journal=Journal of the ACM |volume=21 |issue=1 |year=1974|pages=168-173 |doi= 10.1145/321796.321811}}</ref>
Имплементација функције Леванштајновог растојања која узима двадве стринганиске, „с“ дужине “м“ и стрингниску „т“ дужине „н“ и враћа Левенштајново растојање између та двадве стринганиске.
<source lang="C">
int LevenshteinDistance(char s[1..m], char t[1..n])
Ред 178:
</center>
Инваријанта је одржана кроз алгоритам и можемо трансформисати почетни сегмент <code>s[1..i]</code> у <code>t[1..j]</code> користећи минимум <code>d[i,j]</code> операција. На крају, доњи десни елемент низа садржи одговор.
 
=== Итеративно са два реда матрице ===
Испада да само два реда табеле су потребна за конструкцију: претходни ред и тренутни ред(онај који се рачуна).