En el algoritmo de coincidencia del patrón de fuerza bruta cuando todos los caracteres en el patrón son únicos, entonces la fuerza bruta se puede implementar en la complejidad Big-oh (n) donde n es la longitud de la cadena (referencia: introducción a los algoritmos). ¿Alguien puede ayudarme con el algoritmo? Gracias por adelantado

Considere la implementación simple de la fuerza bruta:

  coincidencia def (texto [1..N], patrón [1..M])
   para i = 0: NM
     bandera = verdadero
     para j = 1: M
       si el texto [i + j]! = patrón [j]
         bandera = falso
         descanso
       fin
     fin
     if flag == true
       // Se ha encontrado una coincidencia
       volver i + 1
     fin
   fin
   //Sin coincidencia
   volver -1

Podemos mostrar que la condición más interna si se verifica como máximo dos veces por carácter en el texto. Suponga que se verifica la condición interna para (i, j). Esto significa que el texto [i + 1 … i + j-1] = patrón [1 … j-1]. Pero dado que todos los caracteres en el patrón son distintos, existe como máximo una posición en el patrón que puede coincidir con el texto [i + j-1]. Por lo tanto, podemos tener como máximo un valor de j> 1 que permita verificar el condicional más interno. Por lo tanto, el algoritmo es O (N).