- t[i] t[i]× ×b b MM mod p mod p //// Trừ Trừ ch ch ưõ so ưõ soá á traù tra ùi nhaá i nha átt
Thuật toán Knuth Morris Morris Pratt Pratt
Thuật toân Knuth
Thuật toân Knuth--MorrisMorris--Pratt Pratt ̈ ̈
̈ Phđn tíPhđn tích ch đđooôô phứphức tac táïp cup cụa thuaôôt toạa thuat toaùnùn ˚
˚ ĐĐịnh nghịnh nghĩĩaa k k = = i i -- jj
˚
˚ Trong mỗi laăăTrong mỗi lan laịịn lap cụûp cua voa vong laøøng laịpịp whilewhile moôômot trongt trong 33 đ
đieieău sau sẽ xaău sau sẽ xaûy raûy ra::
̈
̈ NeââNeuu T[i] = P[j],T[i] = P[j], ththìì ii tăng líntăng lín 1, 1, jj cũng vacũng vaôy, kôy, k không
không đđooơiơi
̈
̈ NeââNeuu T[i] != P[j]T[i] != P[j] vaøøva j j > 0,> 0, ththìì ii không không đđoơơoi vai vaøø kk tăng tăng lín
Dương Anh Đức
Dương Anh Đức –– Nhập môn Cấu trúc Dữ liệu vă Giải thuậtNhập môn Cấu trúc Dữ liệu vă Giải thuật 3030
Thuật toân Knuth
Thuật toân Knuth--MorrisMorris--Pratt Pratt ̈ ̈
̈ NhNhưư vavaôyôy,, mỗi lamỗi laăn laăn laịpịp, , ii hoahoaịcịc kk,, tăng lín tăng lín íít nhat nhaâtât 11 nín so
nín soââ lalaăn laăn laịp top toâị âi i đđa laa laøø 2n2n
̈
̈ DDĩĩ nhiín ta nhiín ta đđang giaang giaûû thiethieâtât ff đđê ê đưđươơïc tïc tíính trnh trưươơùcùc..
̈
̈ Tuy nhiínTuy nhiín,, cacaùch tch tù ínhính ff gagaăn gion gioă âng nhng nhưâ ư KMPMatch KMPMatch nín
nín chichi phphíí ttíínhnh ff hoahoaøn toaøn toan tøøn tưương tơng tựự = O(m)= O(m)
̈
Regular Expressions Regular Expressions Regular Expressions
̈
̈ KyKyùù hiehieôu cho pheôu cho pheùp ta mô taùp ta mô taûû cacaùc chuõi kyùc chuõi kyùù ttựự,, cocoùù the
theơơ dadaøi vô háøi vô hán n
˚
˚εε kykyùù hiehieôu chuỗi rỗng ôu chuỗi rỗng
˚
˚abab + c+ c kyùkyù hieôhieôu tau taôp hơôp hơïppï {{abab, c} , c}
˚
Dương Anh Đức
Dương Anh Đức –– Nhập môn Cấu trúc Dữ liệu vă Giải thuậtNhập môn Cấu trúc Dữ liệu vă Giải thuật 3232
Regular Expressions Regular Expressions Regular Expressions
̈
̈ VVíí du du
˚
˚(a+b)*(a+b)* tataât cat caâ ùc caùc caùc chuỗi kyc chuỗi kyùù ù tựtự vơùvơùi boi boôô chưchưõ caõ caùiiù {a,b}
{a,b}
˚
˚b*(b*(abab*a)*b**a)*b* cacaùc chuỗi kyc chuỗi kyùù ù tựtự vơvơùi moi moỗ ôt sot soââ chaüchaün n ky
kyùù ttựự a a
˚
˚(a+b)*sun(a+b)*(a+b)*sun(a+b)* cacaùc chuỗi kyc chuỗi kyùù ù ttựự cocoùù chchứứa chuỗia chuỗi con
con ““sunsun””
˚