Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 32 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
32
Dung lượng
393,5 KB
Nội dung
a khố nút Khi khởi động bảng băm tất trường key gán NULL Khi thêm nút có khố key vào bảng băm, hàm băm f(key) xác định địa i khoảng từ đến M-1: Null Null Null Null … Null M-1 Null 25 Sử dụng PP “Dò tuyến tính” Thêm nut 32, 53, 22, 92, 17, 34, 24, 37, 56 vào bảng băm NULL NULL NULL NULL 56 NULL NULL NULL NULL NULL 32 32 32 32 32 53 53 53 53 53 NULL 22 22 22 22 NULL 92 92 92 92 NULL NULL 34 34 34 NULL NULL 17 17 17 NULL NULL NULL 24 24 NULL NULL NULL 37 269 37 Sử dụng PP “Dò tuyến tính” Hàm băm lại phương pháp dò tuyến tính truy xuất địa Hàm băm lại lần i biểu diên công thức sau: f(key)=(f(key)+i) %M với f(key) hàm băm bảng băm Lưu ý địa dò tìm địa dò đến cuối bảng Nhận xét: Chúng ta thấy bảng băm tối ưu băm đều, tốc độ truy xuất lúc có bậc 0(1) Trường hợp xấu băm không bảng băm đầy, lúc hình thành khối đặc có n nút tốc độ truy xuất lúc có bậc 0(n) 27 Ví dụ: chèn dãy: 16 13 24 vào bảng băm có 11 vị trí 28 Sử dụng PP “Dò bậc hai” Bảng băm dùng phương pháp dò tuyến tính bị hạn chế rải nút không đều,bảng băm với phương pháp dò bậc hai rải nút Hàm băm lại phương pháp dò bậc hai truy xuất địa cách bậc Hàm băm lại hàm fi biểu diễn công thức sau: fi(key)=( f(key) + i2 ) % M với f(key) hàm băm bảng băm Nếu dò đến cuối bảng trở dò lại từ đầu bảng Bảng băm với phương pháp dò bậc hai nên chọn số địa M số nguyên tố 29 Ví dụ: Cho hàm băm chính: F(k) = k mod 5, sử dụng PP “dò bậc hai” f(key)=(f(key) + i2) % M Thêm 6, 16 vào bảng băm sau: NULL 21 NULL 16 21 NULL 18 18 NULL NULL 30 Thêm vào khóa 10, 15, 16, 20, 30, 25, ,26, 36 10 10 10 10 10 NULL 20 20 20 20 NULL NULL NULL NULL 36 NULL NULL NULL NULL NULL NULL NULL 30 30 30 15 15 15 15 15 16 16 16 16 16 NULL NULL NULL 26 26 NULL NULL NULL NULL NULL NULL NULL 25 25 319 25 Sử dụng PP “Băm kép” Ta sử dụng hàm băm: f1(key)= key % M f2(key)= (M–2) – key % (M-2) 32 ... tính” Thêm nut 32, 53, 22 , 92, 17, 34, 24 , 37, 56 vào bảng băm NULL NULL NULL NULL 56 NULL NULL NULL NULL NULL 32 32 32 32 32 53 53 53 53 53 NULL 22 22 22 22 NULL 92 92 92 92 NULL NULL 34 34... f(key)=(f(key) + i2) % M Thêm 6, 16 vào bảng băm sau: NULL 21 NULL 16 21 NULL 18 18 NULL NULL 30 Thêm vào khóa 10, 15, 16, 20 , 30, 25 , ,26 , 36 10 10 10 10 10 NULL 20 20 20 20 NULL NULL NULL NULL... 16 16 16 NULL NULL NULL 26 26 NULL NULL NULL NULL NULL NULL NULL 25 25 319 25 Sử dụng PP “Băm kép” Ta sử dụng hàm băm: f1(key)= key % M f2(key)= (M 2) – key % (M -2) 32