Реализации алгоритмов/Расстояние Левенштейна: различия между версиями

Содержимое удалено Содержимое добавлено
оформление, убрал последний пример из-за ошибок (ссылался на категорию Категория:Pages with syntax highlighting errors)
Строка 1:
{{wikipedia|АлгоритмРасстояние Левенштейна}}
Здесь приведены реализации [[w:АлгоритмРасстояние Левенштейна|алгоритма Левенштейна]] на разных языках программирования.
 
== [[w:Visual Basic|Visual Basic 6.0 (VB)]] ==
Здесь приведены реализации [[w:Алгоритм Левенштейна|алгоритма Левенштейна]] на разных языках программирования.
 
== [[w:Visual Basic 6.0 (VB)]] ==
<source lang="vb">
 
Строка 151 ⟶ 150 :
 
== [[w:Haskell|Haskell]] ==
<source lang="pythonhaskell">
import Data.List
 
Строка 161 ⟶ 160 :
</source>
 
== Среда [[w:PowerBuilder|PowerBuilder]] ==
нумерация элементов массивов начинается с единицы
 
Строка 215 ⟶ 214 :
</source>
 
== [[w:Java|Java]] ==
Линейное потребление памяти
 
Строка 249 ⟶ 248 :
</source>
 
== [[w:Python|Python]] ==
 
<source lang="python">
Строка 274 ⟶ 273 :
</source>
 
== [[w:Turbo Pascal|Turbo Pascal]] ==
<!--
Зависимости: System
Строка 357 ⟶ 356 :
</source>
 
== [[w:Delphi|Delphi]] ==
<!--
Зависимости: System
Строка 456 ⟶ 455 :
</source>
 
== [[w:Perl|Perl]] ==
<source lang="perl">
sub levenshtein($$){
Строка 489 ⟶ 488 :
</source>
 
== [[w:C++|C++]] ==
 
== [[w:C++]] ==
<!--
Зависимости: Нет. Стандартный Си++.
Строка 549 ⟶ 547 :
</source>
 
== [[w:C sharpSharp|C Sharp]] ==
<!--
Зависимости: System
Строка 588 ⟶ 586 :
</source>
 
== [[w:Transact-SQL#|Transact-SQL]] ==
 
''Примечание: Данная процедура может использоваться только в качестве примера, или для тестирования в силу плохой производительности.''
Строка 689 ⟶ 687 :
exec @retval = LevenshteinDistance 'Петрова Дарья Ивановна', 'Петрова Марья Ивановна'
select @retval
</source>
 
== [[w:Maxscript]] ==
<source lang="maxscript">
fn LevenshteinDistance s1 s2 =
(
L1 = s1.count + 1
L2 = s2.count + 1
if L1 == 1 and L2 == 1 then return 0
else
(
m = for i = 0 to L1 collect (for j = 0 to L2 collect j)
for i = 2 to L1+1 do
(
for j = 2 to L2+1 do
(
diff = if s1[i-1] == s2[j-1] then 0 else 1
m[i][j] = amin #(m[i-1][j] + 1, m[i][j-1] + 1, m[i-1][j-1] + diff)
)
)
return m[L1+1][L2+1]
)
)
 
print (LevenshteinDistance "papa" "mama")
</source>