Ý tưởng cơ bản đằng sau việc thực hiện bảng băm của mảng kết hợp là sim-
ple. Chúng tôi sử dụng một cái gọi là hash chức năng h để chìa khóa đặt của mảng tiềm năng tại - ánh xạ
dices để một phạm vi nhỏ [0..m − 1] số nguyên. Chúng tôi cũng có một mảng t với chỉ số
[0..m − 1], bảng băm cái gọi là. Để giữ cho không gian yêu cầu thấp, chúng tôi
muốn m để về số lượng các yếu tố trong S. Hàm băm kết hợp với
mỗi yếu tố e một băm giá trị h(key(e)). Để đơn giản hóa các ký hiệu, chúng tôi viết h (e)
thay vì h(key(e)) cho giá trị băm của e. Trong ví dụ thư viện, h bản đồ mỗi
số thẻ thư viện để của nó cuối hai chữ số. Lý tưởng nhất, chúng tôi muốn lưu trữ nguyên tố e
trong bảng mục t[h(e)]. Nếu công trình này, chúng tôi có được thực hiện liên tục time1 cho chúng tôi ba
hoạt động chèn, loại bỏ, và nhiều.
thật không may, lưu trữ điện tử trong t[h(e)] sẽ không luôn luôn làm việc như một số yếu tố có thể
va chạm, nghĩa là, bản đồ với cụm từ cùng một bảng. Ví dụ về thư viện cho thấy một fix: Al-
thấp một số đặt đơn đặt hàng để đi đến cùng một kệ. Sau đó toàn bộ kệ có thể
tìm kiếm để nhiều một thứ tự cụ thể. Tổng quát của fix này dẫn đến băm
với loạt. Chúng tôi lưu trữ một tập các phần tử trong mỗi mục bảng và thực hiện các thiết lập
bằng cách sử dụng đơn lẻ liên kết danh sách. Phần 4.1 phân tích băm với loạt bằng cách sử dụng thay vì op-
timistic (và do đó không thực tế) giả định về các tính chất của chức năng băm.
trong mô hình này, chúng tôi đạt được thời gian dự kiến liên tục cho tất cả các từ điển ba hoạt động.
trong phần 4.2 chúng tôi thả các giả định không thực tế và xây dựng băm chức năng
mà đi kèm với đảm bảo hiệu suất (xác suất). Đã có chúng tôi ví dụ đơn giản
Hiển thị finding băm tốt chức năng là không nhỏ. Ví dụ, nếu chúng tôi áp dụng các
đang được dịch, vui lòng đợi..
