Open addressing คืออะไร ?

กระบวนการทำงานของ Open Addressing

 

Open addressing คือ การแก้ไขปัญหาการชนกันของฟังก์ชันแฮชตรงกัน ทำให้เกิดการเก็บที่เดียวกันเมื่อเกิดการชนเกิดขึ้นวิธีการของ Open addressing คือการหาช่องในตารางแฮชใหม่โดยกระโดดไปจากที่เดิมเป็นฟังก์ชันหนึ่ง จนกว่าจะหาช่องว่างเจอจึงจะใส่ค่าลงไป 

 

Open Addressing วิธีนี้เราจะค้นหาค่าตำเเหน่งถัดไปที่ช่องว่าง แล้วนำข้อมูลที่ได้มาในภายหลังไปเก็บไว้

แบ่งออกเป็น 3 ประเภท

  • Open addressing with Linear Probing
  • Open addressing with Quadratic Probing
  • Open addressing with Double Hashing

 

Linear Probing

เป็นการประยุกต์ฟังก์ชันเชิงเส้นในการหาตำเเหน่งใหม่ เช่นการเลือก F(i) = i เป็นการเสาะหาตำเเหน่งถัดจากที่เกิด Collision เพื่อใช้เป็นที่เก็บข้อมูลหากตำแหน่งถัดไปถูกจับจองโดยข้อมูลที่มีอยู่ก่อน ก็จะขยับไปตำเเหน่งถัดไปอีก 1 หนึ่งช่อง (ในลักษณะการขยับไปเรื่อย ๆ แบบเชิงเส้น) เช่นนี้เรื่อยไปจนกว่าจะเจอตำเเหน่งว่าง จึงจะเก็บข้อมูลลงในช่องดังกล่าว จะเห็นว่าวิธีการนี้ล่าช้าทั้งในระหว่างการสืบค้น เพื่อเพิ่มข้อมูล

 

Quadratic Probing

เพื่อแก้ปัญหาความล่าช้าของวิธี Linear Probing จึงมีการเลือก Collision resolution function เพื่อลดความล่าช้าในการหาตำเเหน่งใหม่หลังจากที่เกิด Collision ฟังก์ชันที่ใช้อยู่ในรูปแบบเดียวกันกับ Linear Probing

 

Double Hashing

เป็นความพยายามแก้ปัญหาของ Linear Probing และ Quadratic Probing ที่เสาะหาในตำเเหน่งที่ซ้ำ ๆ อันเป็นสาเหตุของการชนครั้งเเล้วครั้งเล่า โดยอาศัย randomness ของ hash function ในการหาตำเเหน่งใหม่หลังจากการชนกันขึ้น Collision resolution function

 

จากบทความสามารถสรุปได้ว่า Open addressing เป็นวิธีการแก้ปัญหาการชนกันของฟังก์ชันแฮชที่ตรงกัน ทำให้เกิดการเก็บค่าไว้ที่เดียวกัน โดยวิธีการของ Open addressing คือเมื่อเกิดการชนกันของฟังก์ชัน จะทำการหาช่องในตารางแฮชใหม่โดยกระโดดไปจากเดิมเป็นฟังชันหนึ่ง หรือจนกว่าจะหาช่องว่างเจอเเละใส่ค่าลงไป 

 

ช่องทางการศึกษาเพิ่มเติมข่าวสารที่น่าสนใจเกี่ยวกับ : ความหมายคำ คืออะไร

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
แนะนำ 3 ที่เที่ยวสวนผึ้ง วิวสวย อากาศดี เดินทางง่าย ใกล้กรุง พร้อมวิธีการเดินทาง
โดย vibeday อ 26 ธ.ค. 2023 2:42 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
2
729
พ 27 ธ.ค. 2023 12:28 am โดย vibeday View Topic แนะนำ 3 ที่เที่ยวสวนผึ้ง วิวสวย อากาศดี เดินทางง่าย ใกล้กรุง พร้อมวิธีการเดินทาง
ใครเคยเจอปัญหาบ้างไหม
โดย mindphp จ 25 ธ.ค. 2023 3:39 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
553
จ 25 ธ.ค. 2023 3:39 pm โดย mindphp View Topic ใครเคยเจอปัญหาบ้างไหม
สอบถามการเพิ่ม URL โดเมนของแอพ
โดย flook จ 25 ธ.ค. 2023 12:28 pm บอร์ด Programming - PHP
4
742
พ 03 ม.ค. 2024 9:52 am โดย flook View Topic สอบถามการเพิ่ม URL โดเมนของแอพ
สอบถามเมลว่าใช่ของ metamask หรือไม่
โดย Anonymous ส 23 ธ.ค. 2023 9:01 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
458
ส 23 ธ.ค. 2023 9:01 pm โดย บุคคลทั่วไป View Topic สอบถามเมลว่าใช่ของ metamask หรือไม่
ดูแลเตียงผู้ป่วยอย่างไรให้คนที่บ้านอุ่นใจผู้ใช้ปลอดภัย
โดย mheimhei พฤ 21 ธ.ค. 2023 9:48 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
386
พฤ 21 ธ.ค. 2023 9:48 pm โดย mheimhei View Topic ดูแลเตียงผู้ป่วยอย่างไรให้คนที่บ้านอุ่นใจผู้ใช้ปลอดภัย
คำสั่งเปลี่ยน User เพื่อรันคำสั่งบน Linux Ubuntu
โดย mindphp พ 20 ธ.ค. 2023 4:01 am บอร์ด Linux - Web Server
0
358
พ 20 ธ.ค. 2023 4:01 am โดย mindphp View Topic คำสั่งเปลี่ยน User เพื่อรันคำสั่งบน Linux Ubuntu
โหลดเอกสารแล้วเหมือนถูก blocked แก้ยังไงคะ
โดย Narisara อ 19 ธ.ค. 2023 10:52 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
1
306
พฤ 21 ธ.ค. 2023 12:59 pm โดย mindphp View Topic โหลดเอกสารแล้วเหมือนถูก blocked แก้ยังไงคะ
มี software ไหนสามารถมาใช้แทน vmware ได้บ้างครับ ที่เป็นแบบ free หรือ license ไม่แพง
โดย Anonymous จ 18 ธ.ค. 2023 4:00 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
2
492
จ 18 ธ.ค. 2023 4:14 pm โดย mindphp View Topic มี software ไหนสามารถมาใช้แทน vmware ได้บ้างครับ ที่เป็นแบบ free หรือ license ไม่แพง