Professional Documents
Culture Documents
Văn Chí Nam – Nguyễn Thị Hồng Nhung – Đặng Nguyễn Đức Tiến
Hàm băm
Sự đụng độ
Kết luận
© FIT-HCMUS 1
3
Hash Table
© FIT-HCMUS 2
5
ĐNĐTiến +84.95.8345678
VCNam +84.91.2345678
NTHNhung +84.90.9345678
© FIT-HCMUS 3
7
Tập các giá trị khóa (U) có thể lớn hơn rất nhiều so
với số khóa thực tế (K) rất nhiều.
Cấu trúc dữ liệu và giải thuật – HCMUS 2015
T
1 Key Data
.
2
.
3
3
Tập U
. . ..
2
1 4 4
5 5
6
. .. .
4 3 6
Tập K 7
10 8 8
8
9
7 9
10
10
© FIT-HCMUS 4
9
Chọn số (Digit-selection):
Chọn một vài chữ số trong khóa và ghép lại tạo thành
giá trị băm.
Ví dụ:
h(001364825) = 35
10
Gấp số (folding)
Cộngcác chữ số của khóa
Nhóm các chữ số thành số và cộng lại
Ví dụ:
h(001364825) = 0 + 0 + 1 + 3 + 6 + 4 + 8 + 2 + 5 = 29
h(001364825) = 001 + 364 + 825 = 1190
© FIT-HCMUS 5
11
Ví dụ:
h(Key)= Key mod 101
h(001364825) = 12
12
k1, k2 K:
k1 ≠ k2, H(k1) = H(k2) T
9 .. Tập U .. 7
H(3)
6 . 1
4.. .. 5
3
H(4)
Tập K
10
.2
8
H(2) = H(8)
H(10)
© FIT-HCMUS 6
13
Ít xảy ra Tính
đụng toán
độ. nhanh.
Các khóa
phân bố đều.
14
© FIT-HCMUS 7
15
16
ĐNĐTiến +84.95.8345678
VCNam +84.91.2345678
ĐTMHậu +84.95.6543210
NTHNhung +84.90.9345678
© FIT-HCMUS 8
17
Ý tưởng:
Khi đụng độ xảy ra, ta sẽ thử tìm đến vị trị kế tiếp nào
đó trong bảng cho đến khi tìm thấy vị trí nào còn trống.
18
© FIT-HCMUS 9
19
20
© FIT-HCMUS 10
21
22
© FIT-HCMUS 11
23
24
© FIT-HCMUS 12
25
26
© FIT-HCMUS 13