Thuật toán Knuth Morris Morris Pratt Pratt

Một phần của tài liệu Strings and Pattern Matching Pattern Matching (Trang 28 - 32)

- 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””

˚

Một phần của tài liệu Strings and Pattern Matching Pattern Matching (Trang 28 - 32)

Tải bản đầy đủ (PDF)

(32 trang)