Người ta thường nói rằng tra cứu bảng băm hoạt động trong thời gian không đổi: bạn tính toán giá trị băm, cung cấp cho bạn một chỉ mục cho một tra cứu mảng. Tuy nhiên, điều này bỏ qua va chạm; trong trường hợp xấu nhất, tất cả các mục sẽ xảy ra với đất trong xô cùng và thời gian tra cứu trở nên tuyến tính ( ).
Có các điều kiện trên dữ liệu có thể thực hiện tra cứu bảng băm thực sự không? Có phải đó chỉ là trung bình, hoặc một bảng băm có thể tra cứu trường hợp xấu nhất O ( 1 ) không?
Lưu ý: Tôi đến từ quan điểm của một lập trình viên ở đây; Khi tôi lưu trữ dữ liệu trong bảng băm, hầu như luôn luôn là chuỗi hoặc một số cấu trúc dữ liệu tổng hợp và dữ liệu thay đổi trong suốt vòng đời của bảng băm. Vì vậy, trong khi tôi đánh giá cao câu trả lời về băm hoàn hảo, chúng dễ thương nhưng là giai thoại và không thực tế theo quan điểm của tôi.
Theo dõi PS: Đối với loại dữ liệu nào là hoạt động bảng băm O (1)?