Computer >> Máy Tính >  >> Lập trình >> Lập trình

LCFS băm trong cấu trúc dữ liệu


Trong phần này, chúng ta sẽ xem LCFS Hashing là gì. Đây là một trong những chiến lược giải quyết vấn đề mở, thay đổi chiến lược giải quyết xung đột. Nếu chúng ta kiểm tra các thuật toán cho phép băm trong lược đồ địa chỉ mở, chúng ta có thể thấy rằng nếu hai phần tử va chạm, thì phần tử nào có mức độ ưu tiên cao hơn, sẽ được chèn vào bảng và phần tử tiếp theo phải tiếp tục. Vì vậy, chúng ta có thể nói rằng băm trong lược đồ địa chỉ mở là tiêu chí FCFS.

Với sơ đồ LCFS (Lượt đến trước Phục vụ). Nhiệm vụ được thực hiện chính xác theo cách ngược lại. Khi chúng tôi chèn một phần tử, phần tử đó sẽ được đặt ở vị trí x 0 . Nếu địa điểm đã bị chiếm bởi phần tử y, vì y j =x 0 , sau đó chúng tôi đặt y tại vị trí y j + 1 , có thể thay thế một số phần tử z, v.v.

Theo Poblete và Munro, thời gian tìm kiếm dự kiến ​​sau khi chèn n phần tử vào một bảng trống có thể được giới hạn bởi công thức sau.

$$ E [W] =1 + \ Gamma ^ {- 1} (\ alpha n) \ lgroup1 + \ frac {ln \:ln \:\ frac {1} {1+ \ alpha}} {ln \:\ Gamma ^ {- 1} (\ alpha n)} + O (\ frac {1} {ln ^ {2} \:\ Gamma ^ {2} (\ alpha n)}) \ rgroup $$

Đây Γ là hàm Gamma và

$$ \ Gamma ^ {- 1} (\ alpha n) =\ frac {ln \:n} {ln \:ln \:n} \ lgroup1 + \ frac {ln \:ln \:ln \:n} {ln \:ln \:n} + O (\ frac {1} {ln \:ln \:n}) \ rgroup $$