Saya sedang mengerjakan algoritma pencarian string yang mendukung pencarian banyak pola. Saya menemukan dua algoritma yang tampak seperti kandidat terkuat dalam hal menjalankan waktu, yaitu Aho-Corasick dan Rabin-Karp . Namun, saya tidak dapat menemukan perbandingan komprehensif antara kedua algoritma. Algoritma mana yang lebih efisien? Juga, mana yang lebih cocok untuk komputasi paralel dan pencarian banyak pola? Akhirnya, mana yang membutuhkan lebih sedikit sumber daya perangkat keras?
Untuk algoritma AC, fase pencarian membutuhkan waktu , sedangkan O ( n m ) untuk RK. Namun, waktu berjalan untuk RK adalah O ( n + m ) yang membuatnya mirip dengan AC. Kesimpulan sementara saya adalah bahwa RK tampak praktis lebih baik karena tidak membutuhkan banyak memori seperti AC. Apakah itu benar?