Strings and Pattern Matching Pattern Matching

32 337 1
Strings and Pattern Matching Pattern Matching

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Strings and Strings and Pattern Matching Pattern Matching Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 2 2 Strings and Strings and Pattern Matching Pattern Matching ̈ ̈ Brute Force, Brute Force, Rabin Rabin - - Karp, Karp, Knuth Knuth - - Morris Morris - - Pratt Pratt ̈ ̈ Regular Expressions Regular Expressions Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 3 3 Bài toán tìm kiếm chuỗi ký tự Bài toán tìm kiếm chuỗi ký tự ̈ ̈ Đ Đ o o á á i t i t ư ư ơ ơ ï ï ng cu ng cu û û a ba a ba ø ø i toa i toa ù ù n n string searching string searching la la ø ø t t ì ì m m kie kie á á m vò tr m vò tr í í cu cu û û a mo a mo ä ä t t mẫu văn ba mẫu văn ba û û n n (text pattern) (text pattern) trong no trong no ä ä i i dung dung mo mo ä ä t văn ba t văn ba û û n lơ n lơ ù ù n hơn n hơn ( ( mo mo ä ä t câu t câu , , mo mo ä ä t t đ đ oa oa ï ï n n hay hay mo mo ä ä t quye t quye å å n sa n sa ù ù ch ch , , … … ) ) ̈ ̈ Cũng nh Cũng nh ư ư pha pha à à n lơ n lơ ù ù n ca n ca ù ù c thua c thua ä ä t toa t toa ù ù n kha n kha ù ù c c , , quan quan tâm ch tâm ch í í nh cu nh cu û û a a string searching string searching la la ø ø to to á á c c đ đ o o ä ä va va ø ø hie hie ä ä u u qua qua û û . . ̈ ̈ Co Co ù ù nhie nhie à à u thua u thua ä ä t toa t toa ù ù n t n t ì ì m kiễm chuỗi ky m kiễm chuỗi ky ù ù t t ự ự kha kha ù ù c c nhau nhau . . Tuy nhiên Tuy nhiên , , chu chu ù ù ng ta sẽ ch ng ta sẽ ch ỉ ỉ kha kha û û o sa o sa ù ù t ba t ba thua thua ä ä t toa t toa ù ù n la n la ø ø : : Brute Force Brute Force , , Rabin Rabin - - Karp Karp va va ø ø Knuth Knuth - - Morris Morris - - Pratt. Pratt. Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 4 4 Thuật toán Thuật toán Brute Force Brute Force ̈ ̈ Thua Thua ä ä t toa t toa ù ù n n Brute Force Brute Force so so sa sa ù ù nh mẫu t nh mẫu t ì ì m kie m kie á á m m vơ vơ ù ù i văn ba i văn ba û û n n , , mỗi la mỗi la à à n n 1 1 ky ky ù ù t t ự ự , , cho cho đ đ e e á á n khi ca n khi ca ù ù c ky c ky ù ù t t ự ự không khơ không khơ ù ù p p đư đư ơ ơ ï ï c t c t ì ì m tha m tha á á y y : : ̈ ̈ Thua Thua ä ä t toa t toa ù ù n co n co ù ù the the å å đư đư ơ ơ ï ï c thie c thie á á t ke t ke á á sao cho no sao cho no ù ù sẽ sẽ d d ừ ừ ng khi ga ng khi ga ë ë p s p s ự ự xua xua á á t hie t hie ä ä n n đ đ a a à à u tiên cu u tiên cu û û a mẫu a mẫu trong trong text text hoa hoa ë ë c cho c cho đ đ e e á á n khi n khi đ đ ã xe ã xe ù ù t t đ đ e e á á n cuo n cuo á á i i text. text. Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 5 5 Thuật toán Thuật toán Brute Force Brute Force Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 6 6 Thuật toán Thuật toán Brute Force Brute Force Algorithm Algorithm Brute Force Brute Force (P); (P); Input: Input: String String mẫu mẫu P P vơ vơ ù ù i i m m ky ky ù ù t t ự ự Ouput Ouput : : Vò tr Vò tr í í chuỗi mẫu chuỗi mẫu P P trong trong T T hoa hoa ë ë c ba c ba ù ù o không co o không co ù ù do do if (text letter == pattern letter) if (text letter == pattern letter) so so sa sa ù ù nh nh text letter text letter ke ke á á vơ vơ ù ù i i pattern letter pattern letter ke ke á á else else chuye chuye å å n n pattern pattern dòch dòch sang sang pha pha û û i i 1 letter 1 letter until ( until ( t t ì ì m tha m tha á á y toa y toa ø ø n bo n bo ä ä pattern pattern hoa hoa ë ë c c đ đ e e á á n cuo n cuo á á i i text) text) Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 7 7 Thuật toán Thuật toán Brute Force Brute Force Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 8 8 Thuật toán Thuật toán Brute Force Brute Force ̈ ̈ Đ Đ o o ä ä ph ph ứ ứ c ta c ta ï ï p cu p cu û û a thua a thua ä ä t toa t toa ù ù n n Brute Force: Brute Force: Gia Gia û û s s ử ử k k í í ch th ch th ư ư ơ ơ ù ù c cu c cu û û a mẫu la a mẫu la ø ø M M ky ky ù ù t t ự ự va va ø ø text text co co ù ù N N ky ky ù ù t t ự ự ̊ ̊ Tr Tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p xa p xa á á u nha u nha á á t t : so : so sa sa ù ù nh mẫu vơ nh mẫu vơ ù ù i mo i mo ï ï i chuỗi i chuỗi con con chie chie à à u da u da ø ø i i M M trong trong text text ̊ ̊ To To å å ng so ng so á á phe phe ù ù p p so so sa sa ù ù nh nh : : M (N M (N - - M+1) M+1) ̊ ̊ Đ Đ o o ä ä ph ph ứ ứ c ta c ta ï ï p trong tr p trong tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p xa p xa á á u nha u nha á á t t : : O(MN) O(MN) Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 9 9 Thuật toán Thuật toán Brute Force Brute Force ̈ ̈ Đ Đ o o ä ä ph ph ứ ứ c ta c ta ï ï p cu p cu û û a thua a thua ä ä t toa t toa ù ù n n Brute Force: Brute Force: Gia Gia û û s s ử ử k k í í ch th ch th ư ư ơ ơ ù ù c cu c cu û û a mẫu la a mẫu la ø ø M M ky ky ù ù t t ự ự va va ø ø text text co co ù ù N N ky ky ù ù t t ự ự ̊ ̊ Tr Tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p to p to á á t nha t nha á á t t 1: 1: mẫu xua mẫu xua á á t hie t hie ä ä n ngay n ngay đ đ a a à à u u text text ̊ ̊ Đ Đ o o ä ä ph ph ứ ứ c ta c ta ï ï p trong tr p trong tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p to p to á á t nha t nha á á t t 1: 1: O(M) O(M) ̊ ̊ Tr Tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p to p to á á t nha t nha á á t t 2: 2: mẫu không xua mẫu không xua á á t hie t hie ä ä n trong n trong text text ̊ ̊ Đ Đ o o ä ä ph ph ứ ứ c ta c ta ï ï p trong tr p trong tr ư ư ơ ơ ø ø ng hơ ng hơ ï ï p to p to á á t nha t nha á á t t 2: 2: O(N) O(N) Dương Anh Đức Dương Anh Đức – – Nhập môn Cấu trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 10 10 V V í í du du ï ï , , vơ vơ ù ù i i M=5 M=5 ta co ta co ù ù v v í í du du ï ï sau sau : : . Strings and Strings and Pattern Matching Pattern Matching Dương Anh Đức Dương Anh. trúc Dữ liệu và Giải thuật Nhập môn Cấu trúc Dữ liệu và Giải thuật 2 2 Strings and Strings and Pattern Matching Pattern Matching ̈ ̈ Brute Force, Brute Force,

Ngày đăng: 18/09/2013, 21:53

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan