SlideShare una empresa de Scribd logo
1 de 36
Chương 4 Chiến lược biến thể-để-trị (transform-and-conquer)
Nội dung ,[object Object],[object Object],[object Object],[object Object],[object Object]
1.Biến thể để trị (transform-and-conquer) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2. Giải thuật Gauss để giải hệ phương trình tuyến tính ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Thí dụ ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Giải thuật Gauss ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Giải thuật Gauss cải tiến ,[object Object],[object Object]
Giải thuật Gauss cải tiến ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Độ phức tạp của giải thuật Gauss ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Sau khi dùng giải thuật Gauss để đưa ma trận về dạng ma trận tam giác trên, ta sẽ dùng phương pháp thay thế lùi (backward subsitution) để tính ra giá trị của các ẩn.
3. Cấu trúc dữ liệu heap và heapsort ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thi công hàng đợi có độ ưu tiên ,[object Object],[object Object],[object Object]
Cấu trúc dữ liệu heap ,[object Object],[object Object],[object Object],[object Object],[object Object]
Thí dụ: Heap dưới dạng cây nhị phân k  1  2  3  4  5  6  7  8  9  10  11  12 a[k]  X  T  O  G  S  M  N  A  E  R  A   I
Heap dưới dạng một mảng ,[object Object],[object Object],[object Object],Từ một nút dễ dàng để đi tới nút cha và các nút con của nó.    Cha một nút ở vị trí  j  sẽ là nút ở vị trí  j  div  2.    Hai con của một nút ở vị trí  j  sẽ ở các vị trí  2j  và  2j+1.
Các lối đi trên heap ,[object Object],[object Object],[object Object]
Các giải thuật trên Heap ,[object Object],Tác vụ này sẽ làm tăng kích thước của heap lên thêm một phần tử. N được tăng thêm 1.  Và phần tử mới được đặt vào tại vị trí a[N], nhưng lúc đó điều kiện heap có thể sẽ bị vi phạm. Nếu điều kiện heap bị vi phạm, nó sẽ được khắc phục bằng cách  hoán đổi  phần tử mới với cha của nó. Điều này lại có thể gây ra vi phạm điều kiện heap và nó sẽ được khắc phục tiếp với cùng một cách tương tự. 1. Tác vụ thêm vào ( insert)
Tác vụ thêm vào procedure  upheap(k:integer) var  v: integer; begin  v :=a[k]; a[0]:= maxint; while  a[k  div  2] <= v  do begin  a[k]:= a[k  div  2 ]; k:=k  div  2  end ; a[k]:= v end ; procedure  insert(v:integer); begin  N:= N+1; a[N] := v ; upheap(N) end ;
Thêm (P) vào heap M
Tác vụ xóa bỏ phần tử lớn nhất ,[object Object],[object Object],[object Object]
Tác vụ xóa bỏ procedure  downheap(k: integer); label  0 ; var  j, v : integer; begin  v:= a[k]; while  k<= N  div  2  do   begin  j:= 2*k; if  j < N  then  if a[j] < a[j+1]  then     j:=j+1; if  v >= a[j]  then   go   to  0; a[k]:= a[j]; k:= j; end ; 0: a[k]: =v end ; function  remove: integer; begin  remove := a[1]; a[1] := a[N]; N := N-1; downheap(1); end ;
Thí dụ về tác vụ xóa Trước khi xóa Sau khi xóa M
Độ phức tạp của các tác vụ trên heap Tính chất 3.1:   Mọi tác vụ thêm vào, xóa bỏ ,  downheap, upheap đòi hỏi ít hơn 2lgN so sánh khi thực hiện trên một heap gồm N phần tử . Tất cả những tác vụ này phải đi dọc theo một lối đi giữa nút rễ cho đến cuối heap mà bao gồm ít hơn lgN phần tử với một heap gồm N phần tử. Thừa số 2 là do tác vụ downheap khi xóa bỏ mà cần hai thao tác so sánh trong vòng lặp trong và các thao tác khác chỉ đòi hỏi lgN lần so sánh.
Giải thuật heapsort ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Độ phức tạp của heap sort ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
4. Giải thuật Horner để định trị đa thức ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Giải thuật Horner ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
5. So trùng dòng ký tự bằng giải thuật Rabin-Karp ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],Văn bản  abcabaabcabac Khuôn mẫu    abaabcabac Bước dịch chuyển:  s  = 3 Giải thuật Rabin-Karp vận dụng những khái niện căn bản trong lý thuyết số chẳng hạn sự tương đương của hai số modulo một số thứ ba.
Giải thuật Rabin-Karp ,[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Thí dụ : Nếu m = 5 và t s  = 31415, thì ta sẽ bỏ ký số bậc cao T[s+1] = ‘3’ và đưa vào ký số bậc thấp là ‘2’ để đạt giá trị: t s+1  = 10(31415 – 10000.3) + 2 = 14152
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Giải thuật Rabin-Karp thể hiện rõ nét tinh thần chiến lược  Biến thể-để-trị
Thí dụ: |2| 3| 5| 9| 0| 2| 3| 1| 4| 1| 5| 2| 6| 7| 3| 9| 9| 2| 1|    ______      | 7| |2| 3| 5| 9| 0| 2| 3| 1| 4| 1| 5| 2| 6| 7| 3| 9| 9| 2| 1|    _______       ______       ______               | 8| 9| 3|11| 0| 1| 7| 8| 4| 5|10|11| 7| 9|11| valid  spurious match  match | 3| 1| 4| 1| 5| 2|    ______         | 7| 8| 14152 = (31415 – 3    1000)    10 + 2 (mod 13)  = 8 (mod 13)
procedure  RABIN-KARP-MATCHER(T, P, d, q); /* T is the text, P is the pattern, d is the radix and q is the prime */ begin n: = |T|; m: = |P|; h: = d m-1  mod q; p: = 0; t0: = 0; for  i: = 1  to  m  do begin p: = (d*p + P[i])mod q; t 0 : = (d*t 0  + T[i])mod q end for  s: = 0  to  n – m  do begin if  p = t s   then  /* there may be a hit  */ if  P[1..m] = T[s+1..s+m]  then Print “Pattern occurs with shift “s; if  s < n – m  then t s+1 : = (d(t s  –T[s + 1]h) + T[s+m+1])mod q end  end Thời gian thực thi của  RABIN-KARP-MATCHER là O((n – m + 1)m) trong trường hợp xấu nhất vì khi đó giải thuật phải kiểm tra lại mọi bước dịch chuyển hợp lệ. Trong nhiều ứng dụng, thường chỉ có một vài bước dịch chuyển hợp lệ và do đó thời gian chạy thường là O(n+m) cọng với thời gian đòi hỏi để kiểm tra lại các sự khớp trùng giả.
Vài ghi nhận về chiến lược biến thể-để-trị ,[object Object],[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

La actualidad más candente

Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2Hồ Lợi
 
Phân tích và thiết kế thuật toán độ phức tạp
Phân tích và thiết kế thuật toán   độ phức tạpPhân tích và thiết kế thuật toán   độ phức tạp
Phân tích và thiết kế thuật toán độ phức tạpgiangnguyn853776
 
Chuong 2. de quy dai hoc
Chuong 2. de quy   dai hocChuong 2. de quy   dai hoc
Chuong 2. de quy dai hocVũ Nam
 
Chương 9 quy hoachdong
Chương 9 quy hoachdong Chương 9 quy hoachdong
Chương 9 quy hoachdong hoangnguyentien
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7Giáo trình Phân tích và thiết kế giải thuật - CHAP 7
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7Nguyễn Công Hoàng
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cậnDiên Vĩ
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...Nguyen Vietnam
 
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Nguyen Vietnam
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtHưởng Nguyễn
 
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...Nguyen Vietnam
 
Chuong 05 de quy
Chuong 05 de quyChuong 05 de quy
Chuong 05 de quyCau Chu Nho
 

La actualidad más candente (20)

Chuong 3
Chuong 3Chuong 3
Chuong 3
 
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2Chuong 2   co so phan tich do phuc tap cua giai thuat - sinh vien 2
Chuong 2 co so phan tich do phuc tap cua giai thuat - sinh vien 2
 
Phân tích và thiết kế thuật toán độ phức tạp
Phân tích và thiết kế thuật toán   độ phức tạpPhân tích và thiết kế thuật toán   độ phức tạp
Phân tích và thiết kế thuật toán độ phức tạp
 
Đề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAYĐề tài: Thiết kế và phân tích thuật toán, HAY
Đề tài: Thiết kế và phân tích thuật toán, HAY
 
Đệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh CậnĐệ Quy, Quay Lui, Nhánh Cận
Đệ Quy, Quay Lui, Nhánh Cận
 
Chuong 1
Chuong 1Chuong 1
Chuong 1
 
Chuong 2. de quy dai hoc
Chuong 2. de quy   dai hocChuong 2. de quy   dai hoc
Chuong 2. de quy dai hoc
 
Chương 9 quy hoachdong
Chương 9 quy hoachdong Chương 9 quy hoachdong
Chương 9 quy hoachdong
 
Chuong 2
Chuong 2Chuong 2
Chuong 2
 
Phương pháp tham lam
Phương pháp tham lamPhương pháp tham lam
Phương pháp tham lam
 
Đệ quy và quay lui
Đệ quy và quay luiĐệ quy và quay lui
Đệ quy và quay lui
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7Giáo trình Phân tích và thiết kế giải thuật - CHAP 7
Giáo trình Phân tích và thiết kế giải thuật - CHAP 7
 
Phương pháp nhánh cận
Phương pháp nhánh cậnPhương pháp nhánh cận
Phương pháp nhánh cận
 
Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)Chap1 new (tran dai's conflicted copy 2013 04-02)
Chap1 new (tran dai's conflicted copy 2013 04-02)
 
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
[Math educare.com] giai tich ham nhieu bien-phep tinh vi phan ham nhieu bien_...
 
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
Math educare] toan a1-giai tich ham mot bien_giai tich ham nhieu bien_phuong ...
 
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuậtĐề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
Đề thi mẫu trắc nghiệm cấu trúc dữ liệu cà giải thuật
 
Gt de quy
Gt de quyGt de quy
Gt de quy
 
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...
[Math educare] giao trinh toan cao cap a2-giai tich ham nhieu bien_phuong tri...
 
Chuong 05 de quy
Chuong 05 de quyChuong 05 de quy
Chuong 05 de quy
 

Similar a Giáo trình Phân tích và thiết kế giải thuật - CHAP 4

Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiemgaconne1985
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlabmark
 
Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Loc Tran
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfNguynVnTun74
 
05 mat102-bai 2-v1.0
05 mat102-bai 2-v1.005 mat102-bai 2-v1.0
05 mat102-bai 2-v1.0Yen Dang
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docxNguynAnThch
 

Similar a Giáo trình Phân tích và thiết kế giải thuật - CHAP 4 (20)

Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)Chap4 new (tran dai's conflicted copy 2013 04-02)
Chap4 new (tran dai's conflicted copy 2013 04-02)
 
Chap4 new
Chap4 newChap4 new
Chap4 new
 
Chap3 new
Chap3 newChap3 new
Chap3 new
 
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
Chuong 2  phan tich cac thuat toan sap xep va tim kiemChuong 2  phan tich cac thuat toan sap xep va tim kiem
Chuong 2 phan tich cac thuat toan sap xep va tim kiem
 
Gt de quy_2
Gt de quy_2Gt de quy_2
Gt de quy_2
 
Thuat Toan
Thuat ToanThuat Toan
Thuat Toan
 
Thuat Toan 2
Thuat Toan 2Thuat Toan 2
Thuat Toan 2
 
Thuchanh Ktdk-matlab
Thuchanh Ktdk-matlabThuchanh Ktdk-matlab
Thuchanh Ktdk-matlab
 
Chuong03
Chuong03Chuong03
Chuong03
 
Chuong03
Chuong03Chuong03
Chuong03
 
Chap2 new
Chap2 newChap2 new
Chap2 new
 
Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)Chap2 new (tran dai's conflicted copy 2013 04-02)
Chap2 new (tran dai's conflicted copy 2013 04-02)
 
Tuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdfTuan1_GioiThieu.pdf
Tuan1_GioiThieu.pdf
 
Saxep
SaxepSaxep
Saxep
 
05 mat102-bai 2-v1.0
05 mat102-bai 2-v1.005 mat102-bai 2-v1.0
05 mat102-bai 2-v1.0
 
304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx304686218-Chia-đoi-tập-vdgdhợp-2.docx
304686218-Chia-đoi-tập-vdgdhợp-2.docx
 
Quy hoạch động
Quy hoạch độngQuy hoạch động
Quy hoạch động
 
Quy Hoach Dong
Quy Hoach DongQuy Hoach Dong
Quy Hoach Dong
 
Nguyen ham
Nguyen hamNguyen ham
Nguyen ham
 
Ch04
Ch04Ch04
Ch04
 

Más de Nguyễn Công Hoàng

Más de Nguyễn Công Hoàng (7)

Dieubatngochoem
DieubatngochoemDieubatngochoem
Dieubatngochoem
 
Kruskal algorithm
Kruskal algorithmKruskal algorithm
Kruskal algorithm
 
Lap trinh huong doi tuong voi java tran dinh que
Lap trinh huong doi tuong voi java   tran dinh queLap trinh huong doi tuong voi java   tran dinh que
Lap trinh huong doi tuong voi java tran dinh que
 
Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2Giao trinh ky thuat lap trinh 2
Giao trinh ky thuat lap trinh 2
 
Phong cách lập trình - Đặng Bình Phương
Phong cách lập trình - Đặng Bình PhươngPhong cách lập trình - Đặng Bình Phương
Phong cách lập trình - Đặng Bình Phương
 
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
Giáo trình Phân tích và thiết kế giải thuật - CHAP 8
 
Lời khuyên
Lời khuyênLời khuyên
Lời khuyên
 

Giáo trình Phân tích và thiết kế giải thuật - CHAP 4

  • 1. Chương 4 Chiến lược biến thể-để-trị (transform-and-conquer)
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14. Thí dụ: Heap dưới dạng cây nhị phân k 1 2 3 4 5 6 7 8 9 10 11 12 a[k] X T O G S M N A E R A I
  • 15.
  • 16.
  • 17.
  • 18. Tác vụ thêm vào procedure upheap(k:integer) var v: integer; begin v :=a[k]; a[0]:= maxint; while a[k div 2] <= v do begin a[k]:= a[k div 2 ]; k:=k div 2 end ; a[k]:= v end ; procedure insert(v:integer); begin N:= N+1; a[N] := v ; upheap(N) end ;
  • 19. Thêm (P) vào heap M
  • 20.
  • 21. Tác vụ xóa bỏ procedure downheap(k: integer); label 0 ; var j, v : integer; begin v:= a[k]; while k<= N div 2 do begin j:= 2*k; if j < N then if a[j] < a[j+1] then j:=j+1; if v >= a[j] then go to 0; a[k]:= a[j]; k:= j; end ; 0: a[k]: =v end ; function remove: integer; begin remove := a[1]; a[1] := a[N]; N := N-1; downheap(1); end ;
  • 22. Thí dụ về tác vụ xóa Trước khi xóa Sau khi xóa M
  • 23. Độ phức tạp của các tác vụ trên heap Tính chất 3.1: Mọi tác vụ thêm vào, xóa bỏ , downheap, upheap đòi hỏi ít hơn 2lgN so sánh khi thực hiện trên một heap gồm N phần tử . Tất cả những tác vụ này phải đi dọc theo một lối đi giữa nút rễ cho đến cuối heap mà bao gồm ít hơn lgN phần tử với một heap gồm N phần tử. Thừa số 2 là do tác vụ downheap khi xóa bỏ mà cần hai thao tác so sánh trong vòng lặp trong và các thao tác khác chỉ đòi hỏi lgN lần so sánh.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. Thí dụ: |2| 3| 5| 9| 0| 2| 3| 1| 4| 1| 5| 2| 6| 7| 3| 9| 9| 2| 1|  ______   | 7| |2| 3| 5| 9| 0| 2| 3| 1| 4| 1| 5| 2| 6| 7| 3| 9| 9| 2| 1|  _______   ______   ______      | 8| 9| 3|11| 0| 1| 7| 8| 4| 5|10|11| 7| 9|11| valid spurious match match | 3| 1| 4| 1| 5| 2|  ______    | 7| 8| 14152 = (31415 – 3  1000)  10 + 2 (mod 13) = 8 (mod 13)
  • 35. procedure RABIN-KARP-MATCHER(T, P, d, q); /* T is the text, P is the pattern, d is the radix and q is the prime */ begin n: = |T|; m: = |P|; h: = d m-1 mod q; p: = 0; t0: = 0; for i: = 1 to m do begin p: = (d*p + P[i])mod q; t 0 : = (d*t 0 + T[i])mod q end for s: = 0 to n – m do begin if p = t s then /* there may be a hit */ if P[1..m] = T[s+1..s+m] then Print “Pattern occurs with shift “s; if s < n – m then t s+1 : = (d(t s –T[s + 1]h) + T[s+m+1])mod q end end Thời gian thực thi của RABIN-KARP-MATCHER là O((n – m + 1)m) trong trường hợp xấu nhất vì khi đó giải thuật phải kiểm tra lại mọi bước dịch chuyển hợp lệ. Trong nhiều ứng dụng, thường chỉ có một vài bước dịch chuyển hợp lệ và do đó thời gian chạy thường là O(n+m) cọng với thời gian đòi hỏi để kiểm tra lại các sự khớp trùng giả.
  • 36.