Các thuật toán so khớp chuỗi chính xác
Bộ tài liệu tiếng Việt về 36 thuật toán so khớp chuỗi chính xác (exact string matching): tìm mọi vị trí xuất hiện của một mẫu x độ dài m trong văn bản y độ dài n.
Nội dung do Claude biên soạn cho mục đích học tập, lấy cảm hứng từ danh mục thuật toán kinh điển trong lĩnh vực so khớp chuỗi (Charras & Lecroq). Mọi văn bản và mã nguồn trong bộ tài liệu này đều được viết mới.
Mục lục
- Giới thiệu
- Brute Force (vét cạn)
- Otomat hữu hạn đơn định (DFA)
- Karp-Rabin
- Shift-Or
- Morris-Pratt
- Knuth-Morris-Pratt
- Simon
- Colussi
- Galil-Giancarlo
- Apostolico-Crochemore
- Not So Naive
- Boyer-Moore
- Turbo Boyer-Moore
- Apostolico-Giancarlo
- Reverse Colussi
- Horspool
- Quick Search
- Tuned Boyer-Moore
- Zhu-Takaoka
- Berry-Ravindran
- Smith
- Raita
- Reverse Factor (BDM)
- Turbo Reverse Factor
- Forward Dawg Matching
- BNDM
- Backward Oracle Matching
- Galil-Seiferas
- Two Way
- So khớp trên bảng chữ có thứ tự
- Optimal Mismatch
- Maximal Shift
- Skip Search
- KMP Skip Search
- Alpha Skip Search
Cấu trúc mỗi bài
Mỗi thuật toán (từ mục 2 trở đi) gồm: Đặc điểm chính (độ phức tạp tiền xử lý / tìm kiếm, bộ nhớ phụ, hướng so sánh), Ý tưởng, Mô tả chi tiết, Cài đặt bằng C, Ví dụ minh họa và Tài liệu tham khảo.