Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

LCFS Hashing ในโครงสร้างข้อมูล


LCFS Hashing คืออะไร

LCFS (Last Come First Served) เป็นกลยุทธ์ Open Addressing ที่เปลี่ยนวิธีการแก้ไข Collision ใน Open Addressing แบบปกติเป็น FCFS (First Come First Served) คือถ้าชนกัน ตัวที่มี Priority สูงกว่า (มาก่อน) จะอยู่ในตาราง ตัวหลังต้องไปหาที่ว่าง

หลักการ LCFS

ทำงานตรงข้ามกับ FCFS: เมื่อแทรกองค์ประกอบ x ที่ตำแหน่ง x₀ ถ้าที่นั่นมี y อยู่แล้ว (yⱼ = x₀) จะย้าย y ไปที่ yⱼ₊₁ อาจขยับ z ต่อไป...

Expected Search Time (Poblete & Munro)

หลังแทรก n องค์ประกอบในตารางว่าง เวลาค้นหาคาดหมาย:

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

โดย Γ คือ Gamma Function และ

$$\Gamma^{-1}(\alpha n)=\frac{\ln n}{\ln\ln n}\left(1+\frac{\ln\ln\ln n}{\ln\ln n}+O\left(\frac{1}{\ln\ln n}\right)\right)$$