Реализации алгоритмов/Расстояние Левенштейна: различия между версиями
Содержимое удалено Содержимое добавлено
Нет описания правки |
Улучшение |
||
Строка 96:
== Алгоритм Левенштейна на языке [[JavaScript|JavaScript]] ==
<source lang="javascript">
var
cutHalf = flip = Math.max(l1, l2);
var buf = new Array((cutHalf * 2) - 1);
buf[i] = i * minD;▼
▲function levenshtein(s, t, cd, ci, cs) {
▲ m = s.length;
▲ n = t.length;
result = n;▼
cd = cd || 1;▼
▲ var minCost = min3(cd, ci, cs);
▲ var minI = Math.max( minCost, (n - m) * ci );
▲ buf[i] = i * minD;
▲ for (i = 1; i <= m; i++) {
buf[0] = i * minI;▼
for (j = 1; j <= n; j++) {▼
cost = 0;▼
▲ }
}
}▼
buf[ii + 1] = Math.min(buf[ii2 + 1] + cd, buf[ii] + ci, buf[ii2] + cr * (ch !== s2[j]));
▲ }
return buf[l2 + cutHalf - flip];
}
</source>
|