La Red de Conocimientos Pedagógicos - Currículum vitae - Explicación detallada del algoritmo kmp

Explicación detallada del algoritmo kmp

Algoritmo de coincidencia de patrones KMP

El algoritmo KMP es un algoritmo de coincidencia de cadenas mejorado. La clave es utilizar la información después de que la coincidencia falla para minimizar el número de coincidencias entre la cadena del patrón y la cadena principal para lograr una coincidencia rápida. [4].

Después de obtener el vector de características del patrón, el algoritmo de coincidencia de patrones rápido (algoritmo de coincidencia de patrones KMP) basado en el análisis de características es similar al algoritmo de coincidencia ingenuo, excepto que ocurre una cierta discrepancia durante cada proceso de coincidencia. , el patrón En lugar de simplemente retroceder un bit, el número de dígitos a la derecha se determina en función del número característico del carácter actual [3].

Incluir "string.h"

# incluir aserción lt. h gt

int KMPStrMatching(String T, String P, int. n, int startIndex)

{ int last index = t . /p>

if((1 astIndex-startIndex) lt; 0)//Si startIndex es demasiado grande, la coincidencia no se puede realizar correctamente.

return(-1); //El cursor apunta al carácter interno de p

int I //El cursor apunta al carácter interno de T

int j = 0; //El cursor apunta al carácter interno de p

for(I = startIndex; i ltt . strlen(); i )

{ while( P[j]!= T[I] amp; ampj gt0)

j = N[j-1];

if(P[j]==T[i] )

j;

if(j ==P.strlen())

return(1-j 1); , devuelve la posición inicial de la subcadena T.

}

retorno(-1);

}