1.8 KiB
1.8 KiB
title | localeTitle |
---|---|
Rabin Karp Algorithm | Algoritmo de Rabin Karp |
Algoritmo de Rabin-Karp
- Un algoritmo de búsqueda / búsqueda de cadenas desarrollado por Michael O. Rabin y Richard M. Karp.
- Utiliza la técnica de hash y la fuerza bruta para comparación.
Términos importantes
- patrón es la cadena a buscar. Considere la longitud del patrón como M caracteres.
- texto es el texto completo desde el que se busca el patrón. Considere la longitud del texto como N caracteres.
¿Qué es la comparación de fuerza bruta?
En la comparación de fuerza bruta, cada carácter del patrón se compara con cada carácter del texto hasta que se encuentran caracteres no coincidentes.
Trabajo del algoritmo de Rabin-Karp
- Calcular el valor de hash del patrón
- Calcular el valor hash de los primeros M caracteres del texto
- Compara ambos valores hash
- Si son desiguales, calcule el valor de hash para los siguientes M caracteres del texto y compare nuevamente.
- Si son iguales, realice una comparación de fuerza bruta.
hash_p = hash value of pattern
hash_t = hash value of first M letters in body of text
do
if (hash_p == hash_t)
brute force comparison of pattern and selected section of text
hash_t= hash value of next section of text, one character over
while (end of text or brute force comparison == true)
Ventaja sobre el algoritmo de emparejamiento de cadenas ingenuas
Esta técnica produce solo una comparación por secuencia de texto y la fuerza bruta solo se requiere cuando los valores de hash coinciden.
Aplicaciones
- Detección de plagio