1. Trang chủ
  2. » Tất cả

7 thuật toán rabin karp chuong 3 rabin karp

2 1 0

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

THÔNG TIN TÀI LIỆU

Nội dung

Thuật toán Rabin Karp (1) � Tương tự như Brute Force � Tại mỗi vị trí i trên T, thay vì so sánh chi tiết từng ký tự P[j] với T[i+j] (chi phí O(M)) � Sẽ so sánh hash(P, M) với hash(T, i, M) (chi phí O([.]

Thuật toán Rabin Karp (1)  Tương tự Brute Force  Tại vị trí i T, thay so sánh chi tiết ký tự P[j] với T[i+j] (chi phí O(M))  Sẽ so sánh hash(P, M) với hash(T, i, M) (chi phí O(1))  Tính hash(P, M)  hash(P, M) = P[0]*dM-1 + P[1]*dM-2 + + P[M-1]  Chi phí: O(M)  Tính hash(T, i, M)  T[i] đến T[i+(M-1)]  x = hash(T, i, M) = T[i]*dM-1 + T[i+1]*dM-2 + + T[i+(M-1)]  Chi phí: O(M) 13/38 Thuật tốn Rabin Karp (2)  Làm tính hash(T, i+1, M) ?  Dịch chuyển sang phải phần tử  y = hash(T, i+1, M) = (x - T[i]*dM-1)*d + T[i+M]  Chi phí: O(1) 14/38 .. .Thuật tốn Rabin Karp (2)  Làm tính hash(T, i+1, M) ?  Dịch chuyển sang phải phần tử  y = hash(T, i+1, M) = (x - T[i]*dM-1)*d + T[i+M]  Chi phí: O(1) 14 /38

Ngày đăng: 25/03/2023, 13:08

w