Boyer Boyer - - Moore Moore Ví dụ: P= m=5, j=m-1=4 T= n=12,s=0 1. T[4+0] # P[4] j=4,k=last(T[4],P)=3,s=0+1=1 2. s=1,j=4,T[4+1] = P[4] j=4-1=3 3. T[3+1] = P[3] j=3-1=2 4. T[2+1] # P[2] j=2,k=last(T[3],P)=4,s=1+1=2 5. s=2,j=4,T[4+2] # P[4] j=4,k=last(T[6],P)=2, s=2+2=4 6. s=4,j=4,T[4+4] = P[4] j=4-1=3 0 1 2 3 4 A B C A B 0 1 2 3 4 5 6 7 8 9 10 11 A C B B A B C A B A B C Boyer Boyer - - Moore Moore Ví dụ: P= m=5, j=m-1=4 T= n=12,s=0 7. s=4,j=3,T[3+4] = P[3] j=3-1=2 8. s=4,j=2,T[2+4] = P[2] j=2-1=1 9. s=4,j=1,T[1+4] = P[1] j=1-1=0 10. s=4,j=0,T[0+4] = P[0] j=0-1=-1 Tìm thấy P trong T tại s=4 0 1 2 3 4 A B C A B 0 1 2 3 4 5 6 7 8 9 10 11 A C B B A B C A B A B C Boyer Boyer - - Moore Moore Đánh giá thuật toán: - Hàm Last: O(m+n) - Boyer-Moore: Tình huống xấu nhất O(mn+n) - VD: P=ba m-1 ; T=a n Boyer Boyer - - Moore Moore Bài tập: 1. Tìm Prefix của mẫu sau: a. ABABBC b. BBABBA . C A B 0 1 2 3 4 5 6 7 8 9 10 11 A C B B A B C A B A B C Boyer Boyer - - Moore Moore Đánh giá thuật toán: - Hàm Last: O(m+n) - Boyer-Moore: Tình huống xấu nhất O(mn+n) - VD: P=ba m-1 ; T=a n Boyer Boyer - - Moore Moore