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

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


ในส่วนนี้เราจะมาดูกันว่าอะไรคือเทคนิค Double Hashing ในรูปแบบการกำหนดที่อยู่แบบเปิด มีฟังก์ชันแฮชธรรมดา h´(x) :U → {0, 1, . . ., ม. – 1}. ในรูปแบบการกำหนดที่อยู่แบบเปิด ฟังก์ชันแฮชจริง h(x) กำลังใช้ฟังก์ชันแฮชธรรมดา h'(x) เมื่อช่องว่างไม่ว่างเปล่า จากนั้นจึงดำเนินการฟังก์ชันแฮชอื่นเพื่อให้ได้พื้นที่ที่จะแทรก

$$h_{1}(x)=x\:mod\:m$$

$$h_{2}(x)=x\:mod\:m^{\prime}$$

$$h(x,i)=(h^{1}(x)+ih^{2})\:mod\:m$$

ค่าของ i =0, 1, . . ., m – 1 เราเริ่มจาก i =0 และเพิ่มจนได้พื้นที่ว่างหนึ่งที่ ดังนั้น ในตอนแรก เมื่อ i =0 ดังนั้น h(x, i) จะเหมือนกับ h´(x)

ตัวอย่าง

สมมติว่าเรามีรายการขนาด 20 (ม. =20) เราต้องการใส่องค์ประกอบบางอย่างในลักษณะการตรวจสอบเชิงเส้น องค์ประกอบคือ {96, 48, 63, 29, 87, 77, 48, 65, 69, 94, 61}

$$h_{1}(x)=x\:mod\:20$$

$$h_{2}(x)=x\:mod\:13$$

x h(x, i) =(h1 (x) + ih2(x)) mod 20

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

ตารางแฮช

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