Một ví dụ trong đó Thuật toán Knuth-Morris-Pratt nhanh hơn Boyer-Moore?


10

Đây trang về Knuth-Moriss-Pratt Thuật toán so với Boyer-Moore mô tả một trường hợp có thể nơi các thuật toán Boyer-Moore bị khoảng cách bỏ nhỏ trong khi KMP có thể thực hiện tốt hơn.
Tôi đang tìm kiếm một ví dụ tốt (văn bản, mẫu) có thể chứng minh rõ ràng trường hợp này.


Câu trả lời:


3

Có một bài báo đã thực hiện một thử nghiệm tốt về các thuật toán khớp chuỗi này cho các mẫu khác nhau: " So sánh các thuật toán khớp chuỗi: hỗ trợ cho bảo mật nội dung thông tin "

Ngoài ra còn có một nghiên cứu về các thuật toán khớp chuỗi này cho ngôn ngữ Nhật Bản: So sánh và cải tiến thuật toán khớp chuỗi cho các văn bản tiếng Nhật

Tôi hy vọng những điều này hữu ích để hiểu được về hiệu quả của thuật toán!


3

Những mẫu này sẽ giúp KMP hoạt động nhanh hơn:

T = aaaaaaaaaa P = aaaa KMP sẽ thử 10 bước so sánh là Boyer-Moore sẽ mất 28

Một vi dụ khac:

T = aaaaaaaaaa P = abab KMP sẽ thử 8 bước so sánh trong đó BM sẽ thử 12.


Trong ví dụ đầu tiên, cả hai thuật toán sẽ tìm thấy sự trùng khớp ngay lập tức, ở ca đầu tiên - làm thế nào họ có thể thực hiện hơn 4 so sánh?
BartoszKP
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.