โอเวอร์โฟลว์เกิดขึ้นในเวลาที่บัคเก็ตหลักสำหรับคู่ใหม่ (คีย์, องค์ประกอบ) เต็ม
เราอาจจัดการกับน้ำล้นโดย
ค้นหาตารางแฮชอย่างเป็นระบบสำหรับถังที่ยังไม่เต็ม
- การตรวจสอบเชิงเส้น (การกำหนดที่อยู่เปิดเชิงเส้น)
- การตรวจวัดกำลังสอง
- สุ่มตรวจ
ขจัดส่วนเกินโดยอนุญาตให้แต่ละที่เก็บข้อมูลเก็บรายการของคู่ทั้งหมดที่เป็นที่เก็บข้อมูลหลัก
- รายการเชิงเส้นของอาร์เรย์
- โซ่
การระบุที่อยู่แบบเปิดจะดำเนินการเพื่อให้แน่ใจว่าองค์ประกอบทั้งหมดจะถูกจัดเก็บโดยตรงในตารางแฮช ดังนั้นจึงพยายามแก้ไขการชนกันที่ใช้วิธีการต่างๆ
การตรวจสอบเชิงเส้นจะดำเนินการเพื่อแก้ไขการชนกันโดยการวางข้อมูลลงในช่องที่เปิดถัดไปในตาราง
ประสิทธิภาพของการตรวจวัดเชิงเส้น
- เวลาที่แย่ที่สุดในการค้นหา/แทรก/ลบคือ θ(m) โดยที่ m จะถือเป็นจำนวนคู่ในตาราง
- สิ่งนี้เกิดขึ้นเมื่อทุกคู่อยู่ในคลัสเตอร์เดียวกัน
ปัญหาของการตรวจวัดเชิงเส้น
- ตัวระบุมีแนวโน้มที่จะรวมกลุ่มกัน
- กลุ่มที่อยู่ติดกันมีแนวโน้มที่จะรวมตัวกัน
- เพิ่มหรือปรับปรุงเวลาในการค้นหา
การตรวจวัดกำลังสอง
การค้นหาแบบเส้นตรง (H(x)+i2)%b; H(x) หมายถึงฟังก์ชันแฮชของ x
การตรวจสอบกำลังสองใช้ฟังก์ชันกำลังสองของ i เป็นการเพิ่มขึ้น
ตรวจสอบถัง H(x), (H(x)+i2)%b, (H(x)-i2)%b สำหรับ 1<=i<=(b-1)/2
b ถูกระบุเป็นจำนวนเฉพาะของรูปแบบ 4j+3, j เป็นจำนวนเต็ม
การสุ่มตัวอย่าง
Random Probing ดำเนินการร่วมกับตัวเลขสุ่ม
H(x):= (H’(x) + S[i]) % b S[i] is a table along with size b-1 S[i] is indicated as a random permutation of integers [1, b-1].