Hallo,
könnt ihr mir sagen warum folgende Rekursion, zur Ermittlung der Editierdistanz von zwei Wörtern, das richtige Ergebnis liefert?
könnt ihr mir sagen warum folgende Rekursion, zur Ermittlung der Editierdistanz von zwei Wörtern, das richtige Ergebnis liefert?
Code:
public int findDistance(String a, String b, int lenghtA, int lengthB)
{
int cij;
if(lenghtA == 0)
return lengthB; // es sind lengthB Operationen nötig um a nach b zu überführen.
if(lengthB == 0)
return lenghtA; // es sind lengthA Operationen nötig um b nach a zu überführen.
if(a.charAt(lenghtA-1) == b.charAt(lengthB-1)) // schauen ob die letzten beiden Zeichen identisch sind
cij = 0;
else
cij = 1;
return min(findDistance(a, b, lenghtA-1, lengthB ) + 1,
findDistance(a, b, lenghtA, lengthB-1) + 1,
findDistance(a, b, lenghtA-1, lengthB-1) + cij);
}