W Wikipedii podano implementację oddolnego schematu programowania dynamicznego dla odległości edycji. Nie jest całkowicie zgodny z definicją; komórki wewnętrzne są obliczane w następujący sposób:
if s[i] = t[j] then
d[i, j] := d[i-1, j-1] // no operation required
else
d[i, j] := minimum
(
d[i-1, j] + 1, // a deletion
d[i, j-1] + 1, // an insertion
d[i-1, j-1] + 1 // a substitution
)
}
Jak widać, algorytm zawsze wybiera wartość od lewego górnego sąsiada, jeśli istnieje dopasowanie, oszczędzając dostęp do pamięci, operacje ALU i porównania.
Jednak usunięcie (lub wstawienie) może skutkować mniejszą wartością, dlatego algorytm jest lokalnie niepoprawny, tzn. Łamie kryterium optymalności. Ale może błąd nie zmienia wyniku końcowego - może zostać anulowany.
Czy ta mikrooptymalizacja jest ważna i dlaczego (nie)?