Việc sử dụng "đóng" và "mở" phản ánh việc chúng tôi có bị khóa vào sử dụng vị trí hoặc cấu trúc dữ liệu nhất định hay không (đây là mô tả cực kỳ mơ hồ). Ví dụ, "mở" trong "mở địa chỉ" cho chúng ta biết chỉ mục (aka. Address) mà tại đó một đối tượng sẽ được lưu trữ trong bảng băm không hoàn toàn được xác định bởi mã băm của nó. Thay vào đó, chỉ mục có thể khác nhau tùy thuộc vào những gì đã có trong bảng băm.
"Đã đóng" trong "băm đóng" đề cập đến thực tế là chúng tôi không bao giờ rời khỏi bảng băm; mọi đối tượng được lưu trữ trực tiếp tại một chỉ mục trong mảng nội bộ của bảng băm. Lưu ý rằng điều này chỉ có thể bằng cách sử dụng một số loại chiến lược địa chỉ mở. Điều này giải thích tại sao "băm khép kín" và "mở địa chỉ" là từ đồng nghĩa.
Tương phản điều này với băm mở - trong chiến lược này, không có đối tượng nào thực sự được lưu trữ trong mảng bảng băm; thay vào đó một khi một đối tượng được băm, nó được lưu trữ trong một danh sách tách biệt với mảng nội bộ của bảng băm. "mở" đề cập đến sự tự do mà chúng tôi nhận được bằng cách rời khỏi bảng băm và sử dụng một danh sách riêng biệt. Bằng cách này, "danh sách riêng biệt" gợi ý tại sao băm mở còn được gọi là "chuỗi riêng biệt".
Trong ngắn hạn, "đóng" luôn đề cập đến một số loại bảo đảm nghiêm ngặt, như khi chúng tôi đảm bảo rằng các đối tượng luôn được lưu trữ trực tiếp trong bảng băm (đóng băm). Sau đó, đối diện của "đóng cửa" là "mở", vì vậy nếu bạn không có bảo lãnh như vậy, chiến lược được coi là "mở".
Nguồn
2012-02-03 06:24:58
Chúng ta nên thêm rằng Mở Hashing (Chaining riêng biệt) không bị giới hạn trong danh sách liên kết, mà không phải là bộ nhớ cache thân thiện và denegerate vào cuộc tấn công va chạm với hành vi O (n/2). Bạn cũng có thể sử dụng cây hoặc các mảng được sắp xếp cho các nhóm xung đột. – rurban