Звіт про швидкості алгоритмів пошуку рядків

У цьому документі наведено результати вимірювання швидкостей трьох алгоритмів пошуку рядків: Knuth-Morris-Pratt, Boyer-Moore та Rabin-Karp для двох статей (існуючих та неіснуючих).

Результати

Knuth-Morris-Pratt

Стаття Статус Час виконання (секунди)
Стаття 1 Існуючий 0.012412
Стаття 1 Неіснуючий 0.032566
Стаття 2 Існуючий 0.025705
Стаття 2 Неіснуючий 0.045419

Boyer-Moore

Стаття Статус Час виконання (секунди)
Стаття 1 Існуючий 0.001646
Стаття 1 Неіснуючий 0.008702
Стаття 2 Існуючий 0.003980
Стаття 2 Неіснуючий 0.012560

Rabin-Karp

Стаття Статус Час виконання (секунди)
Стаття 1 Існуючий 0.039078
Стаття 1 Неіснуючий 0.082707
Стаття 2 Існуючий 0.070967
Стаття 2 Неіснуючий 0.111682

Висновки

  1. Knuth-Morris-Pratt:

    • Найшвидший для існуючого тексту статті 1 (0.012412 сек).
    • Помітно повільніший для неіснуючого тексту, особливо для статті 2 (0.045419 сек).
  2. Boyer-Moore:

    • Найшвидший алгоритм серед усіх протестованих.
    • Значне зменшення часу виконання для існуючих текстів, зокрема статті 1 (0.001646 сек).
  3. Rabin-Karp:

    • Найповільніший з усіх алгоритмів, особливо для неіснуючих текстів.
    • Час виконання в середньому вдвічі більший, ніж у Knuth-Morris-Pratt.

Загальні висновки

  • Алгоритм Boyer-Moore демонструє найкращу продуктивність в усіх випадках, особливо для існуючих текстів.
  • Knuth-Morris-Pratt є більш продуктивним для існуючих текстів, але його продуктивність знижується для неіснуючих текстів.
  • Rabin-Karp, хоча і відомий своєю простотою, показує найгірші результати у всіх сценаріях тестування.