Distancia de edicion(2)
Transcript of Distancia de edicion(2)
![Page 1: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/1.jpg)
Distancia de Edición
![Page 2: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/2.jpg)
Lizbeth Aracely Treviño Treviño 1462274
Carmen Patricia Suarez Palomares
Jorge Adrian Salinas Molano
Materia:Lenguajes de Programación
Hora: Martes m1 –m3
Maestra: Dra. Elisa Schaeffer
![Page 3: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/3.jpg)
¿Qué es?
Se le llama así al número mínimo de operaciones Se le llama así al número mínimo de operaciones necesarias para transformar una cadena de caracteres en necesarias para transformar una cadena de caracteres en otraotra
Esta distancia se calcula contando las transformaciones Esta distancia se calcula contando las transformaciones que necesita una de las cadenas para obtener la otra y las que necesita una de las cadenas para obtener la otra y las diferentes transformaciones que se pueden hacer son: diferentes transformaciones que se pueden hacer son:
• EliminaciónEliminación
• SustituciónSustitución
• InserciónInserción
![Page 4: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/4.jpg)
Su nombre se debe al matemático ruso Vladimir Levenshtein, quien creo este algoritmo en 1965
Este algoritmo utiliza una matriz de tamaño (n + 1) × (m + 1),
donde n y m son las longitudes de los cadenas que se comparan.
EJEMPLOS
![Page 5: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/5.jpg)
Int DistanciaEdicion(char pal1[strlen(pal1)], char pal2[strlen(pal2)])Int matriz[(strlen(pal1))+1][(strlen(pal2))+1]Int i,j,c
De i = 0 hasta strlen(pal1)matriz[i][0] = i
De j = 0 hasta strlen(pal2)matriz[0][j] = j
De i = 1 hasta strlen(pal1)De j = 1 hasta strlen(pal2)
si pal1[i]==pal2[2] Entonces c = 0else c = 1
matriz[i][j] = minimo{matriz[i-1][j]+1, Eliminarmatriz[i][j-1]+1, Insertarmatriz[i-1][j-1]+c Sustitución}
Return matriz[strlen(pal1)][strlen(pal2)]
![Page 6: Distancia de edicion(2)](https://reader030.fdocuments.ec/reader030/viewer/2022032618/55ba5a1cbb61eb1c348b46d0/html5/thumbnails/6.jpg)
m a m a
0 1 2 3 4
p 1 1 2 3 4
a 2 2 1 2 2
P 3 3 2 2 3
a 4 4 2 3 2*
*Cambios necesarios para cambiar de mamá a papá
*Ejemplo : Calcula la distancia de edición para cambiar de la palabra mamá a la palabra papá