ให้เรตสมาชิก: 5 / 5

ดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งานดาวใช้งาน
 

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 คือเมื่อเกิดการชนกันของฟังก์ชัน จะทำการหาช่องในตารางแฮชใหม่โดยกระโดดไปจากเดิมเป็นฟังชันหนึ่ง หรือจนกว่าจะหาช่องว่างเจอเเละใส่ค่าลงไป 

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
ลบคอมเม้นของเว็บบอร์ด PHP ยังไง
โดย Udomsak2539 จ 14 ก.ย. 2020 10:58 am บอร์ด MindPHP News & Feedback
2
174
จ 14 ก.ย. 2020 11:07 am โดย Udomsak2539
วิธีใช้คีย์ลัดเปลี่ยนภาษาใน Ubantu กดตรงไหนเหรอคะ
โดย fhakun จ 14 ก.ย. 2020 10:56 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
5
291
พ 16 ก.ย. 2020 5:09 pm โดย chatee supasand
การใส่ใจลูกน้อยวัยทารกที่มีอาการผื่นแดงแพ้ตามลำตัว
โดย medalezga ศ 11 ก.ย. 2020 4:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
277
ศ 11 ก.ย. 2020 4:38 pm โดย medalezga
วิธี Setup SSL ให้กับ GitLab เข้าใช้งาน https ได้ง่ายไม่ต้องแก้ไขโค้ดได้แล้วด้วย GitLab 12
โดย mindphp อ 08 ก.ย. 2020 8:29 pm บอร์ด Linux - Web Server
1
331
อ 08 ก.ย. 2020 8:42 pm โดย mindphp
สอบถามเรื่อง Output ข้อมูล Keywords ที่ได้จาก Youtube ครับ
โดย nai_cyp ส 05 ก.ย. 2020 6:35 pm บอร์ด Programming - C/C++ & java & Python
1
275
ส 05 ก.ย. 2020 7:53 pm โดย mindphp
geckodriver คืออะไรครับ ?
โดย nai_cyp พฤ 03 ก.ย. 2020 10:49 pm บอร์ด Programming - C/C++ & java & Python
2
403
ส 05 ก.ย. 2020 11:33 pm โดย nai_cyp
วิธีเลือกงาน
โดย jataz2 พฤ 03 ก.ย. 2020 5:51 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
292
พฤ 03 ก.ย. 2020 5:51 pm โดย jataz2
งานที่ได้เงินเดือนเยอะ
โดย jataz2 พฤ 03 ก.ย. 2020 5:38 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
249
พฤ 03 ก.ย. 2020 5:38 pm โดย jataz2
จัดการขยะ กับน้ำเสีย
โดย jataz2 พฤ 03 ก.ย. 2020 5:25 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
239
พฤ 03 ก.ย. 2020 5:25 pm โดย jataz2
ปัญหาการบันทึกใบแจ้งหนี้ในระบบ กับใบแจ้งหนี้/ใบกำกับภาษีที่ได้รับจากเจ้าหนี้ไม่ตรงกัน จะต้องทำอย่างไร
โดย natthanit.r2538 พฤ 03 ก.ย. 2020 3:51 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
216
พฤ 03 ก.ย. 2020 3:51 pm โดย natthanit.r2538
Edge Computing คืออะไร และมีประโยชน์อย่างไร
โดย nai_cyp อ 01 ก.ย. 2020 6:27 pm บอร์ด Share Knowledge
1
420
พฤ 10 ก.ย. 2020 5:15 pm โดย บุคคลทั่วไป
การสร้างบทความและสินค้าไว้ในหน้าเดียวกันในร้านค้าออนไลน์ด้วย Plugin Content Product Match ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:51 pm บอร์ด MindPHP News & Feedback
0
307
อ 01 ก.ย. 2020 3:51 pm โดย bolue
โชว์สินค้าสไลด์ในร้านค้าออนไลน์ด้วย Module Ajax Search ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:42 pm บอร์ด MindPHP News & Feedback
0
180
อ 01 ก.ย. 2020 3:42 pm โดย bolue
โชว์สินค้าสไลด์ในร้านค้าออนไลน์ด้วย Module Product Slide ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:34 pm บอร์ด MindPHP News & Feedback
0
182
อ 01 ก.ย. 2020 3:34 pm โดย bolue
แสดงสถิติของร้านค้าในร้านค้าออนไลน์ด้วย Module Statistics ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:30 pm บอร์ด MindPHP News & Feedback
0
158
อ 01 ก.ย. 2020 3:30 pm โดย bolue
แสดง ratings ของสินค้าในร้านค้าออนไลน์ด้วย Module Products Reviews ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:20 pm บอร์ด MindPHP News & Feedback
0
159
อ 01 ก.ย. 2020 3:20 pm โดย bolue
แสดงป้ายกำกับสินค้าในร้านค้าออนไลน์ด้วย Module Product Labels ใน MooZiiCart
โดย bolue อ 01 ก.ย. 2020 3:12 pm บอร์ด MindPHP News & Feedback
0
169
อ 01 ก.ย. 2020 3:12 pm โดย bolue
Import excel .xlxs มีปัญหาอยู่ไฟล์หนึ่งไม่สามารถเเสดงได้ เจอ error ไม่ทราบว่าเกิดจากอะไร
โดย thatsawan อ 01 ก.ย. 2020 11:44 am บอร์ด Programming - PHP
1
616
อ 01 ก.ย. 2020 11:45 am โดย thatsawan
ตัวอย่างคำสั่ง การใช้ API ส่งภาพ ผ่าน curl ด้วย binary data
โดย mindphp อ 30 ส.ค. 2020 11:54 pm บอร์ด Linux - Web Server
0
188
อ 30 ส.ค. 2020 11:54 pm โดย mindphp
สอบถามเรื่อง local,server ครับ
โดย nai_cyp พฤ 27 ส.ค. 2020 7:19 pm บอร์ด Programming - C/C++ & java & Python
4
425
จ 31 ส.ค. 2020 5:03 pm โดย mindphp