รายละเอียดการแฮชสองครั้ง

ขณะนี้ฉันกำลังทบทวนการสอบปลายภาคสำหรับชั้นเรียนอัลกอริทึม และพบคำถามสองสามข้อในแบบทดสอบฝึกหัดที่ฉันไม่แน่ใจ ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!

ข้อใดต่อไปนี้ไม่ถูกต้องเกี่ยวกับลำดับโพรบสำหรับการดำเนินการ Double hashing?

A. สองคีย์อาจมีลำดับโพรบเหมือนกัน

B. ช่องทั้งหมดในตารางแฮชจะปรากฏในแต่ละลำดับโพรบ

C. องค์ประกอบของลำดับโพรบคือคีย์ที่เป็นไปได้สำหรับตารางแฮช

D. ลำดับโพรบสำหรับคีย์ไม่สามารถเปลี่ยนแปลงได้

ฉันเชื่อว่า A,B และ D เป็นจริง ดังนั้นฉันคิดว่า C เป็นคำตอบที่ถูกต้อง


กรณีที่แย่ที่สุดสำหรับการแฮชสองครั้งคือ:

A. คีย์ที่เก็บไว้ทั้งหมดมี h1 เหมือนกัน

B. คีย์ที่เก็บไว้ทั้งหมดมี h2 เหมือนกัน

C. คีย์ที่เก็บไว้ทั้งหมดมี h1 และ h2 เหมือนกัน

D. การใส่แต่ละคีย์จำเป็นต้องตรวจสอบช่องสำหรับคีย์ที่ใส่ไว้ก่อนหน้านี้ทั้งหมด

ฉันเชื่อว่าคำตอบนี้จะเป็น C ฉันไม่แน่ใจทั้งหมดเกี่ยวกับคำตอบนี้ดังนั้นคำอธิบายก็น่าจะดี


person user1013032    schedule 10.12.2011    source แหล่งที่มา


คำตอบ (1)


  1. คุณพูดว่า "A,B และ D เป็นจริง" และคิดว่า C เป็นเท็จ แม้ว่า C จะระบุไว้อย่างคลุมเครือ แต่ดูเหมือนว่าจะเป็นจริงเพราะลำดับโพรบประกอบด้วยการลองใช้ชุดคีย์ ดู B ให้ละเอียดยิ่งขึ้น และพิจารณาว่าจะเกิดอะไรขึ้นถ้า h2(v) เป็นตัวหารของ m ซึ่งเป็นขนาดของตาราง
  2. C และ D มีลักษณะคล้ายกันมาก เนื่องจาก C จะทำให้เกิด D อย่างไรก็ตาม อาจมีกรณีอื่นที่ทำให้เกิด D ดังนั้น นี่อาจเป็นคำตอบ
person James Waldby - jwpat7    schedule 10.12.2011