Bài giảng Cấu trúc dữ liệu và giải thuật: Đối sánh chuỗi - Đậu Ngọc Hà Dương có nội dung trình bày về đối sánh chuỗi, thuật toán Brute-Force, thuật toán Morris-Pratt, cải tiến với Knuth-Morris-Pratt, . Mời các bạn cùng tham khảo! | Cấu trúc dữ liệu và giải thuật ĐỐI SÁNH CHUỖI Giảng viên Đậu Ngọc Hà Dương Nội dung trình bày 2 Cấu trúc dữ liệu và giải thuật HCMUS 2010 Giới thiệu 3 Đối sánh chuỗi Từ khóa String matching String searching Pattern searching Text Searching Một trong những thuật toán quan trọng và có ứng dụng rộng rãi. Cấu trúc dữ liệu và giải thuật HCMUS 2010 Giới thiệu 4 Ứng dụng của đối sánh chuỗi Máy tìm kiếm Trình soạn thảo văn bản Trình duyệt web Sinh học phân tử Tìm mẫu trong dãy DNA . . Cấu trúc dữ liệu và giải thuật HCMUS 2010 Giới thiệu 5 Mục tiêu Kiểm tra sự tồn tại của một chuỗi ký tự mẫu pattern trong một chuỗi ký tự có kích thước lớn hơn nhiều văn bản text . Nếu tồn tại trả về một hoặc nhiều vị trí xuất hiện. Quy ước Mẫu cần tìm P chiều dài m . Văn bản T chiều dài n . Cấu trúc d ữ liệu và giải thuật HCMUS 2010 P và T có cùng tập hữu hạn ký tự . 0 1 Giới thiệu 6 Đối sánh chuỗi Bằng cách lần lượt dịch chuyển cửa sổ P trên T. P tồn tại trên T tại vị trí bắt đầu là i 0 i n m nếu T i j P j với mọi 0 j m - 1. Ví dụ P abbaba T ababaabbabaa gt C i 5ữ liệu và giải thuật HCMUS 2010 ấu trúc d Giới thiệu 7 Các thuật toán tiêu biểu Brute Force Karp-Rabin Morris-Pratt Knuth-Morris-Pratt Boyer-Moore Cấu trúc dữ liệu và giải thuật HCMUS 2010 Thuật toán Brute-Force Cấu trúc dữ liệu và giải thuật HCMUS 2010 Ý tưởng 9 Lần lượt kiểm tra điều kiện P 0 m 1 T i i m 1 tại mọi vị trí có thể của i. Ví dụ Tìm kiếm P aab trong T acaabc Cấu trúc dữ liệu và giải thuật HCMUS 2010 Cài đặt 10 bruteForceMatcher T P n length T m length P for i 0 to n - m if P T i i m-1 return i Cấu trúc dữ liệu và giải thuật HCMUS 2010 Đánh giá 11 Trường hợp tốt nhất không tìm thấy O n . Trường hợp xấu nhất không tìm thấy O n m . Trường hợp trung bình O n m . Cấu trúc dữ liệu và giải thuật HCMUS 2010 Đặc điểm chính 12 Không cần thao tác tiền xử lý trên P. Luôn luôn dịch chuyển mẫu cửa sổ sang phải một vị trí. Thao tác so sánh có thể thực hiện theo bất kỳ chiều nào. Trườững h ấu trúc d C ợp x liệu và gi ấậu nh ải