Цей документ містить результати порівняльного аналізу трьох алгоритмів пошуку - Boyer-Moore, Knuth-Morris-Pratt (KMP) та Rabin-Karp - на основі часу їх виконання, здатності знаходити задані рядки у текстах та їхньої складності за Big-O нотацією.
Нижче представлені таблиці з часом виконання кожного алгоритму для двох різних текстів і шаблонів, а також їхньою теоретичною складністю.
Використано два шаблони для порівняння - перший шаблон міститься в тексті data/article_1.txt
і другий шаблон міститься в тексті data/article_2.txt
.
Шаблон | Алгоритм | Big-O Нотація | Час (секунди) | Результат |
---|---|---|---|---|
Фундаментальні знання допомагають дізнатися | Boyer-Moore | O(n) | 0.000043 | Так |
Фундаментальні знання допомагають дізнатися | KMP | O(n + m) | 0.000165 | Так |
Фундаментальні знання допомагають дізнатися | Rabin-Karp | O(n + m) у середньому, O(nm) у гіршому випадку | 0.000297 | Так |
Вибір методу представлення даних | Boyer-Moore | O(n) | 0.000253 | Ні |
Вибір методу представлення даних | KMP | O(n + m) | 0.001205 | Ні |
Вибір методу представлення даних | Rabin-Karp | O(n + m) у середньому, O(nm) у гіршому випадку | 0.001988 | Ні |
Шаблон | Алгоритм | Big-O Нотація | Час (секунди) | Результат |
---|---|---|---|---|
Фундаментальні знання допомагають дізнатися | Boyer-Moore | O(n) | 0.000326 | Ні |
Фундаментальні знання допомагають дізнатися | KMP | O(n + m) | 0.004653 | Ні |
Фундаментальні знання допомагають дізнатися | Rabin-Karp | O(n + m) у середньому, O(nm) у гіршому випадку | 0.003064 | Ні |
Вибір методу представлення даних | Boyer-Moore | O(n) | 0.000068 | Так |
Вибір методу представлення даних | KMP | O(n + m) | 0.000252 | Так |
Вибір методу представлення даних | Rabin-Karp | O(n + m) у середньому, O(nm) у гіршому випадку | 0.000455 | Так |
На основі отриманих даних можна зробити висновки про найшвидшість та ефективність кожного з алгоритмів пошуку для обох текстів.
Як і очікувалось, враховуючи часову складніть, алгоритм пошуку Boyer-Moore
є найбільш ефективним, так як його часова складність - O(n)
.