Vous êtes sur la page 1sur 2

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD

DEL CUSCO

FACULTAD DE INGENIERIA ELECTRICA,

ELECTRONICA,
INFORMATICA
Y MECANICA

INGENIERIA INFORMATICA
Y DE SISTEMAS
Algoritmo Knuth-Morris-Pratt
Alumno : Rimayhuaman Grajeda Brayan

1.

Resumen

Para encontrar todas las apariciones de un patron P en una cadena mas grande S y
obtener un tiempo de ejecuci
on mejor,aprenderemos el algoritmo KMP cuya complejidad
temporal es mucho mejor que el Algoritmo Z.El algoritmo KMP se basara principalmente
en usar la informaci
on contendida en el propio patron.

2.

Introducci
on

Para el problema de encontrar un patron P en una cadena S se llevara a cabo la


comprensi
on de la idea del algoritmo de KMP para as poder implementar el algoritmo en
la resoluci
on del problema .

3.

Desarrollo

El algoritmo de b
usqueda Knuth-Morris-Pratt (KMP) mantiene una pista de informacion obtenida en comparaciones previas. Estas comparaciones previas se calcula mediante
una funci
on Prefijo() que indica las longitud de prefijo mas grande que tiene e patron lo
cual nos permitir
a realizar saltos en el texto.

- Luego en el algoritmo principal ambas cadenas comienzan a compararse usando un


puntero de avance para la cadena a buscar, si ocurre un fallo en vez de volver a la posicion
siguiente a la primera coincidencia, se salta hacia donde indica el puntero actual de avance
de la tabla (tabla generada por la funcion Prefijo()).La cadena S utiliza un puntero de
avance absoluto que considera donde se compara el primer caracter de ambas cadenas, y
utiliza como un puntero relativo (sumado al absoluto) el que utiliza para su recorrido la
cadena P. Ejemplo:

4.

Conclusiones

El algoritmo KMP es un algoritmo que para determinar donde podra darse la siguiente
existencia utiliza la informaci
on pre calculada en la tabla y por lo tanto no hay necesidad de
analizar m
as de 1 vez los caracteres de la cadena donde se busca lo cual es muy beneficioso
en la compler=jidad temporal.

Referencias
[1] http://www.slideshare.net/thinkphp/string-kmp
[2] http://www.slideshare.net/thinkphp/string-kmp

Vous aimerez peut-être aussi