Levenshtein c

 entier DistanceDeLevenshtein(caractere chaine1[1..longueurChaine1],
                              caractere chaine2[1..longueurChaine2])
   // D est un tableau de longueurChaine1+1 rangées et longueurChaine2+1 colonnes
   // D est indexé à partir de 0, les chaînes à partir de 1
   déclarer entier D[0..longueurChaine1, 0..longueurChaine2]
   // i et j itèrent sur chaine1 et chaine2
   déclarer entier i, j, coûtSubstitution
 
   pour i de 0 à longueurChaine1
       
  
    
      
        D
        [
        i
        ,
        0
        ]
        ]
        :=
        i
      
    
    {\displaystyle D[i,0]]:=i}
  
{\displaystyle D[i,0]]:=i}
   pour j de 0 à longueurChaine2
       
  
    
      
        D
        [
        0
        ,
        j
        ]
        ]
        :=
        j
      
    
    {\displaystyle D[0,j]]:=j}
  
{\displaystyle D[0,j]]:=j}
 
   pour i de 1 à longueurChaine1
      pour j de 1 à longueurChaine2
          si chaine1[i] = chaine2[j] alors coûtSubstitution := 0
          sinon coûtSubstitution:= 1    
          
  
    
      
        D
        [
        i
        ,
        j
        ]
        ]
        :=
      
    
    {\displaystyle D[i,j]]:=}
  
{\displaystyle D[i,j]]:=} minimum(
             D[i-1, j  ] + 1,                 // effacement du nouveau caractère de chaine1
             D[i,   j-1] + 1,                 // insertion dans chaine2 du nouveau caractère de chaine1
             D[i-1, j-1] + coûtSubstitution   // substitution
          )
 
   renvoyer D[longueurChaine1, longueurChaine2]
Gotta Go fast