Los tres algoritmos están relacionados: todos son algoritmos de coincidencia de cadenas.
Diferencia:
"Algoritmo KMP": durante el proceso de coincidencia, si ocurre una discrepancia, si next[j]gt;=0, el puntero i de la cadena de destino no cambie, mueva el puntero j de la cadena del patrón a la posición de siguiente [j] para continuar haciendo coincidir si siguiente [j] = -1, mueva i hacia la derecha 1 bit, establezca j en 0 y continúe la comparación.
El "algoritmo BF" es un algoritmo de coincidencia de patrones común. La idea del algoritmo BF es hacer coincidir el primer carácter de la cadena de destino S con el primer carácter de la cadena de patrón P. Si son iguales. , continúe la comparación del segundo carácter de S y el segundo carácter de P; si no son iguales, compare el segundo carácter de S con el primer carácter de P y continúe la comparación hasta obtener el resultado final de la coincidencia.
En cada comparación, el "algoritmo KR" utiliza el algoritmo HASH para calcular el mapeo HASH de la cadena de texto y la cadena de patrón, y compara si las cadenas coinciden comparando el tamaño del valor de mapeo. Sin embargo, considerando el conflicto HASH, cuando los valores de mapeo son los mismos, es necesario comparar más a fondo si las cadenas son iguales. Pero en cada comparación, es necesario calcular el valor HASH, por lo que es importante elegir un algoritmo HASH apropiado.
¡Sabes un par de cosas!