Skip to document

Chuong 4 - dfdsfdsfs

dfdsfdsfs
Course

Introduction to c++ (csc 128)

272 Documents
Students shared 272 documents in this course
Academic year: 2021/2022

Comments

Please sign in or register to post comments.

Preview text

Chương 4: Hàm băm

Khái niệm

Bảng băm là một CTDL thường được sử dụng như một từ điển: mỗi phần tử trong bảng băm là một cặp <khóa, giá trị>. Ta có thể tìm được giá trị thông qua khóa của nó. Hàm băm (hash function) là một hàm chuyển đổi các khóa của một tập dữ liệu có kích thước tùy ý thành các giá trị số nguyên thực tế nhỏ để được sử dụng làm chỉ mục (index) trong bảng băm. Các giá trị được trả về bởi hàm băm được gọi là giá trị băm.

Hàm băm đủ tốt:

Nối kết trực tiếp Các khóa bị băm vào cùng một địa chỉ sẽ gom thành danh sách. Nối kết hợp nhất Bảng băm trong trường hợp này cũng được cài đặt bằng danh sách liên kết. Nhưng các nút bị xung đột địa chỉ được kết nối với nhau qua danh sách liên kết.

2. Phương pháp băm lại (địa chỉ mở)

Với hàm băm h 1 (key) = key%M h(key, i) là địa chỉ băm của khóa key nếu tiến hành băm lại lần i.

Phương pháp dò tuyến tính: h(key, i) = (h 1 (key) + i)%M Phương pháp dò bậc hai: h(key, i) = (h(key) + i 2 )%M

Phương pháp băm kép: h 2 (key) = (M − 2) − key%(M − 2) h(key, i) = (h 1 (key) ∗ i + h 2 (key))%M

Ví dụ: Cho bảng băm ở trạng thái vừa khởi tạo có M = 11 nút, lần lượt thêm các khóa 30, 42, 24, 13, 3, 2, 10, 20 vào bảng theo thứ tự từ trái sang.

Chỉ mục Khóa - Dò tuyến tính Khóa - Dò bậc hai Khóa - Băm kép 0 20 20 2 1 NULL NULL NULL 2 24 24 24 3 13 13 3 4 3 3 NULL 5 2 NULL 20 6 NULL 2 NULL 7 NULL NULL 13 8 30 30 30 9 42 42 42 10 10 10 10

Was this document helpful?

Chuong 4 - dfdsfdsfs

Course: Introduction to c++ (csc 128)

272 Documents
Students shared 272 documents in this course
Was this document helpful?
Chương 4: Hàm băm
Ki niệm
Bảng băm là một CTDL thường được sử dụng như một từ điển: mỗi phần tử trong bảng băm là một cặp <khóa, giá trị>. Ta có thể tìm
được giá trị thông qua khóa của nó.
Hàm băm (hash function) là một hàm chuyển đổi các khóa của một tập dữ liệu có kích thước tùy ý thành các giá trị số nguyên thực tế
nhỏ để được sử dụng làm chỉ mục (index) trong bảng băm. Các giá trị được trả về bởi hàm băm được gọi là giá trị băm.