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

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


สำหรับฟังก์ชันแฮชใดๆ เราสามารถพูดได้ว่าหากขนาดตาราง m เล็กกว่าขนาดจักรวาล u มาก ดังนั้นสำหรับฟังก์ชันแฮช h จะมีชุดย่อยขนาดใหญ่ของ U ที่เหมือนกัน ค่าแฮช

เพื่อขจัดปัญหานี้ เราจำเป็นต้องมีชุดของฟังก์ชันแฮช ซึ่งเราสามารถเลือกฟังก์ชันใดที่เหมาะกับ S ได้ หากฟังก์ชันแฮชส่วนใหญ่เหมาะกับ S มากกว่า เราก็สามารถเลือกฟังก์ชันแฮชแบบสุ่มได้

สมมติว่า ℌ เป็นชุดของฟังก์ชันแฮช เราสามารถพูดได้ว่า ℌ เป็นสากล ถ้าสำหรับแต่ละ x, y ∈ U จำนวน h ∈ ℌ โดยที่ h(x) =h(y) มีค่ามากที่สุด |ℌ|/𝑚 กล่าวอีกนัยหนึ่ง เราสามารถพูดได้ว่าด้วยฟังก์ชันแฮช h ซึ่งสุ่มเลือกจาก ℌ โอกาสของการชนกันระหว่างคีย์ x และ y ที่แตกต่างกัน ไม่เกินโอกาส 1/m ของการชนกันถ้า h(x) =h(y) สุ่มและเลือกอย่างอิสระจากชุด {0, 1, . . ., ม – 1}.

หากเราเก็บ S ในตารางแฮชโดยใช้ฟังก์ชันแฮช h เวลาที่คาดไว้สำหรับการค้นหาและลบคือ O(1 + α)