Estou trabalhando em algoritmos de pesquisa de string que suportam a pesquisa de vários padrões. Encontrei dois algoritmos que parecem os candidatos mais fortes em termos de tempo de execução, a saber, Aho-Corasick e Rabin-Karp . No entanto, não consegui encontrar nenhuma comparação abrangente entre os dois algoritmos. Qual algoritmo é mais eficiente? Além disso, qual é o mais adequado para computação paralela e pesquisa de múltiplos padrões? Finalmente, qual requer menos recursos de hardware?
Para o algoritmo AC, a fase de pesquisa leva tempo , enquanto é O ( n m ) para RK. No entanto, o tempo de execução para o RK é O ( n + m ), o que o torna semelhante ao AC. Minha conclusão preliminar é que o RK parece praticamente melhor, pois não precisa de tanta memória quanto o AC. Isso está correto?