S: bacbaba babacaab

Một phần của tài liệu Khoá luận tốt nghiệp một số thuật toán tìm chuỗi và xây dựng chương trình minh họa thuật toán boyer moore (Trang 30)

c. Ví dụ minh họa cho thuật toán tính hàm tiền tố:

1.3.193.S: bacbaba babacaab

1.3.194. P : á b a b a c a

1.3.195. Thấy P[l] = SỊa] => q = 1, không dịch chuỗi p mà so sánh tiếp ký tự tiếp theo.

- Bước 3: Với i = 3, q = 1 so sánh P[2] và S[3]:

1.3.196. S : b a c b a b a b a b a c a a b

1.3.197. P :

a b a b a c a

1.3.198. Thấy P[2] ^ S[3] => q = n ( l ) = 0, không so sánh tiếp và dịch chuỗi p sang phải so với chuỗi s 2 vị trí để có thể so sánh ở bước tiếp theo là so sánh P[l] và S[4].

- Bước 4: Với i = 4, q = 0, so sánh P[l] và S[4]:

1.3.199. S : b a c b a b a b a b a c a a b

1.3.200. a b a b a c a

1.3.201. Thấy P[l] ^ s[4] => q = 0, không so sánh tiếp và dịch chuỗi p

1.2.43.

- Bước 5: Với q = 0; i = 5, so sánh P[l] và S[5]:

1.3.202. S : b a c b a b a b a b a c a a b

1.3.203. t

1.3.204. P : a b a b a c a

1.3.205. Thấy P[l] = S[5] => q = 1, không dịch chuỗi p mà so sánh ký tự tiếp 1.3.206. theo. - Bước 6: Với q = 1; i = 6, so sánh P[2] và S[6]: 1.3.207. S : b a c b a b a b a b a c a a b 1.3.208. y 1.3.209. P : a b a b a c a

1.3.210. Thấy P[2] = s [6] => q = 2, không dịch chuỗi p mà so sánh ký tự tiếp 1.3.211. theo. - Bước 7: Với q = 2; i = 7, so sánh P[3] và S[7]: 1.3.212. S : b a c b a b a b a b a c a a b P : a b a b a c a

1.3.213. Thấy P[3] = s[7] => q = 3, không dịch chuỗi p mà so sánh ký tự tiếp

1.3.214. theo.

- Bước 8: Với q = 3; i = 8, so sánh P[4] và S[8]:

1.3.215. S : b a c b a b a b a b a c a a b

1.3.217. P : a b a b a c a

1.3.218. Thấy P[4] = S[8] => q = 4, không dịch chuỗi p mà so sánh ký tự tiếp theo.

- Bước 9: Với q = 4; i = 9, so sánh P[5] và S[9]:

1.3.219. S : b a c b a b a b a b a c a a b

1.3.220. Î

1.3.221. P : a b a b a c a

1.3.222. Thấy P[5] = s [9] => q = 5, không dịch chuỗi p mà so sánh ký tự tiếp 1.3.223. theo. - Bước 10: Với q = 5; i = 10, so sánh P[6] và S[10]: 1.3.224. S : b a c b a b a b a b a c a a b P : a b a b a c a

1.3.225. Thấy Р[6] Ф S[10] => q = П[6] = 3, không so sánh ký tự tiếp theo mà dịch p sang phải so với chuỗi s 2 vị trí để có thể so sánh P[4] và S[10]. Mà P[4] = S[10] => q = 4

- Bước 11: Với q = 4; i = 11, so sánh P[5] và S[11]: (adsbygoogle = window.adsbygoogle || []).push({});

1.3.226. S : b a c b a b a b a b a c a a b

1.3.227.I

1.3.228. P : a b a b a c a

1.3.229. Thấy P[5] = S[11] => q = 5, không dịch chuỗi p mà so sánh ký tự tiếp

1.3.230. theo.

1.3.231. S :

b a c b a b a b a b a c a a b P :a b a b a c a

Một phần của tài liệu Khoá luận tốt nghiệp một số thuật toán tìm chuỗi và xây dựng chương trình minh họa thuật toán boyer moore (Trang 30)