3.4 Thuật toỏn đối sỏnh nhanh đa mẫu
3.4.4 Hiệu suất thuật toỏn
Xột văn bản cần tỡm cú kớch thước N và tập P mẫu, mỗi mẫu cú kớch thước m, khi đú M=m*P là tổng độ dài của tất cả cỏc mẫu, giả sử N> M và c là số cỏc
phần tử trong tập cỏc ký tự chữ cỏi.
Thời gian tớnh bảng SHIFT là một hằng số O(M) bởi mỗi chuỗi con cú kớch
thước là B ký tự, mà mỗi mẫu chỉ được xột một lần mà số mẫu và kớch thước của
mẫu là hữu hạn. Khi xột mẫu cú hai trường hợp xảy ra: thứ nhất, nếu giỏ trị SHIFT
khỏc 0 thỡ dịch sang phải số vị trớ bằng giỏ trị của SHIFT và thực hiện xột tiếp; Thứ hai, giỏ trị SHIFT bằng 0 thỡ thực hiện đối sỏnh chớnh xỏc mẫu với văn bản mà mẫu được đối sỏnh được xỏc định trong bảng HASH.
Thuật toỏn đối sỏnh mẫu này dựa trờn cơ sở của thuật toỏn Aho_Crasick và cả Boyer_Moore_Horspool. Thuật toỏn Aho_Crasick thực hiện trong thời gian
O((m+n)*logmin{p,card}) [11]. Giải phỏp ở đõy cũn dựa trờn thuật toỏn Boyer_Moore_Horspool, tớnh trước số bước dịch dài nhất cú thể để giảm sự đối sỏnh, tăng tốc độ tỡm kiếm. Vỡ thế thời gian thời gian thực hiện sẽ ớt hơn so với cỏc thuật toỏn trước; Mặc dự phải mất thời gian và khụng gian lưu trữ cho giai đoạn tiền xử lý.
74
Trong trường hợp xấu nhất thuật toỏn thực hiện trong thời gian O((m+n)*logmin{p,card}). Trong thực tế, thuật toỏn thực hiện trong thời gian ớt hơn, bởi cỏc mẫu và văn bản khụng phải là một tập ký tự ngẫu nhiờn, mà cả mẫu lẫn văn bản đều được sắp xếp nờn giỏ trị của bảng SHIFT càng lớn dẫn đến thời
gian đối sỏnh ớt đi).