Some very old PHP code originally intended to become an image management tool.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

52 lines
1.0 KiB

/*
Copyright (c) 2006. All Rights reserved.
If you use this script, please email me and let me know, thanks!
Andrew Hedges
andrew (at) hedges (dot) name
If you want to hire me to write JavaScript for you, see my resume.
http://andrew.hedges.name/resume/
*/
// return the smallest of the three values passed in
function minimum (x, y, z)
{
if (x < y && x < z) return x;
if (y < x && y < z) return y;
return z;
}
// calculate the Levenshtein distance between a and b,
function levenshtein (a, b)
{
var cost;
var m = a.length;
var n = b.length;
// make sure a.length >= b.length to use O(min(n,m)) space
if (m < n)
{
var c=a; a=b; b=c;
var o=m; m=n; n=o;
}
var r = new Array();
r[0] = new Array();
for (var c = 0; c < n+1; c++)
r[0][c] = c;
for (var i = 1; i < m+1; i++)
{
r[i] = new Array();
r[i][0] = i;
for (var j = 1; j < n+1; j++)
{
cost = (a.charAt(i-1) == b.charAt(j-1))? 0: 1;
r[i][j] = minimum (r[i-1][j]+1, r[i][j-1]+1, r[i-1][j-1]+cost);
}
}
return r[r.length-1][r[r.length-1].length-1];
}