Băm bằng cách sử dụng cây tìm kiếm thay vì danh sách


11

Tôi đang vật lộn với băm và tìm kiếm tài liệu cây nhị phân. Và tôi đọc rằng thay vì sử dụng danh sách để lưu trữ các mục có cùng giá trị băm, thì cũng có thể sử dụng cây tìm kiếm nhị phân. Và tôi cố gắng hiểu thời gian chạy trường hợp xấu nhất và trường hợp trung bình cho các hoạt động

  1. insert,
  2. find
  3. delete

có giá trị trường hợp trung bình. Họ có cải thiện đối với danh sách?


Nếu bạn có quyền truy cập vào một phân tích nghiêm ngặt về thời gian chạy của các bảng băm với chuỗi tuyến tính (tức là danh sách tuyến tính), hãy thay thế phần mà chi phí trung bình trên danh sách tuyến tính được cắm với kết quả trường hợp trung bình của việc thực hiện cây tìm kiếm cân bằng. Phần còn lại là cơ khí. (Rõ ràng là nó có ích.)
Raphael

Câu trả lời:


4

Đối với danh sách, chèn, tìm và xóa tương ứng trong , , . Danh sách sắp xếp là tồi tệ hơn. Bản thân tìm kiếm nhị phân là cho các mảng được sắp xếp, trong đó các hoạt động nằm trong , , . Nếu bạn muốn các thao tác "chèn" và "xóa" thì bạn cần nhiều hơn là chỉ tìm kiếm nhị phân.O ( n ) O ( n ) O ( n ) O ( log n ) O ( n )O(1)O(n)O(n)O(n)O(logn)O(n)

Bạn có thể muốn một cái gì đó như cây tìm kiếm nhị phân . Sẽ dễ dàng hơn rất nhiều để tìm tài liệu tham khảo về nó một khi bạn có thuật ngữ thích hợp. Các hoạt động này trong thời gian trường hợp xấu nhất , ví dụ như đối với việc triển khai sử dụng cây AVLcây đỏ đen .O(logn)


1
Điều đó hoàn toàn chính xác, nhưng tôi không thấy cách nó trả lời câu hỏi được đặt ra.
rgrig

Đó không phải là cùng một câu hỏi tại thời điểm đó. (Ngay cả lịch sử chỉnh sửa cũng không có câu hỏi ban đầu. Thật kỳ lạ.) Tôi có thể cập nhật câu trả lời của mình nhưng nó sẽ trở nên dư thừa với Gilles.
jmad

4

O(n)nnn1=Θ(n)n1O(n)O(1)

O(logn)

O(1)

nn/2Θ(n)Θ(logn)


2
"với phân phối dữ liệu trung bình" nên đọc "với hàm băm đủ ngẫu nhiên"
JeffE
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.