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

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


ในส่วนนี้เราจะมาดูกันว่า LCFS Hashing คืออะไร นี่เป็นหนึ่งในกลยุทธ์การกำหนดที่อยู่แบบเปิด ซึ่งเปลี่ยนกลยุทธ์การแก้ปัญหาการชนกัน หากเราตรวจสอบอัลกอริทึมสำหรับการแฮชในรูปแบบที่อยู่เปิด เราจะพบว่าหากองค์ประกอบสององค์ประกอบชนกัน ที่มีลำดับความสำคัญสูงกว่า จะถูกแทรกลงในตาราง และองค์ประกอบที่ตามมาจะต้องดำเนินต่อไป ดังนั้นเราจึงสามารถบอกได้ว่าการแฮชในรูปแบบการกำหนดที่อยู่แบบเปิดนั้นเป็นเกณฑ์ FCFS

ด้วยโครงการ LCFS (Last Come First Serve) งานจะดำเนินการในทางตรงกันข้าม เมื่อเราแทรกองค์ประกอบหนึ่งเข้าไป สิ่งนั้นจะถูกวางไว้ที่ตำแหน่ง x0 . หากสถานที่นั้นถูกครอบครองโดยองค์ประกอบ y เพราะ yj =x0 จากนั้นเราวาง y ไว้ที่ตำแหน่ง yj+1 , อาจแทนที่บางองค์ประกอบ z และอื่นๆ

ตาม Poblete และ Munro เวลาการค้นหาที่คาดหมายหลังจากแทรกองค์ประกอบ n รายการในตารางว่างสามารถถูกจำกัดด้วยสูตรต่อไปนี้

$$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$$

นี่คือฟังก์ชันแกมมา Γ และ

$$\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$$