Я работаю над алгоритмами поиска строк, которые поддерживают поиск по нескольким шаблонам. Я нашел два алгоритма, которые кажутся наиболее сильными кандидатами с точки зрения времени выполнения, а именно: Aho-Corasick и Rabin-Karp . Однако я не смог найти исчерпывающего сравнения между этими двумя алгоритмами. Какой алгоритм более эффективен? Кроме того, какой из них больше подходит для параллельных вычислений и поиска по нескольким шаблонам? Наконец, какой из них требует меньше аппаратных ресурсов?
Для алгоритма переменного тока фаза поиска занимает времени, в то время как для RK это O ( n m ) . Тем не менее, время работы для RK составляет O ( n + m ), что делает его похожим на AC. Мой предварительный вывод заключается в том, что РК кажется практически лучше, поскольку ему не нужно столько памяти, сколько АС. Это правильно?