[bảng băm có] O (1) chèn và tìm kiếm
Tôi nghĩ rằng điều này là sai.
Trước hết, nếu bạn giới hạn không gian khóa là hữu hạn, bạn có thể lưu trữ các phần tử trong một mảng và thực hiện quét tuyến tính O (1). Hoặc bạn có thể shufflesort mảng và sau đó làm một tuyến tính quét trong O (1) dự kiến thời gian. Khi công cụ là hữu hạn, công cụ có thể dễ dàng O (1).
Vì vậy, giả sử bảng băm của bạn sẽ lưu trữ bất kỳ chuỗi bit tùy ý nào; nó không quan trọng lắm, miễn là có một bộ khóa vô hạn, mỗi khóa đều có giới hạn. Sau đó, bạn phải đọc tất cả các bit của bất kỳ truy vấn và chèn đầu vào, khác tôi chèn y0 vào một băm rỗng và truy vấn trên y1, trong đó y0 và y1 khác nhau ở một vị trí bit duy nhất mà bạn không nhìn vào.
Nhưng giả sử độ dài khóa không phải là tham số. Nếu chèn và tìm kiếm của bạn lấy O (1), cụ thể băm mất O (1) thời gian, có nghĩa là bạn chỉ nhìn vào một số lượng hữu hạn của đầu ra từ hàm băm (từ đó có khả năng là chỉ là một kết quả hữu hạn , được cấp).
Điều này có nghĩa là với nhiều nhóm hợp lý, phải có một chuỗi các chuỗi vô hạn mà tất cả đều có cùng giá trị băm. Giả sử tôi chèn rất nhiều, ví dụ: ω (1), trong số đó và bắt đầu truy vấn.Điều này có nghĩa là bảng băm của bạn phải rơi vào một số cơ chế tìm kiếm/chèn tìm O (1) khác để trả lời các truy vấn của tôi. Cái nào và tại sao không chỉ sử dụng trực tiếp?
Nguồn
2009-02-01 12:49:56
Đây là sự khôn ngoan thông thường. Trường hợp tốt nhất, O (1), rõ ràng là việc triển khai sẽ khác nhau. Có nhiều thuật toán bảng băm khác nhau. – ApplePieIsGood
"Đây là một sự khôn ngoan thông thường." - Tôi đã nghe nó nhiều lần, nhưng tôi vẫn chưa thấy một bằng chứng. Tôi nghĩ sẽ rất tốt nếu thử thách tác phẩm văn hóa dân gian này nếu bạn muốn kết quả lý thuyết "đó là O (1)", hoặc đo các cấu trúc tra cứu khác nhau nếu bạn muốn "thực hành nhanh". "Trường hợp tốt nhất, O (1)" - cây tìm kiếm không cân bằng cũng có điều đó, nhưng không ai cho rằng chúng có "O (1) chèn và tìm kiếm". –
cây tìm kiếm trường hợp không cân bằng tốt nhất sẽ là một nút từ trạng thái cân bằng. Tốt nhất trường hợp chèn/tra cứu vẫn là log (n) –