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

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อย่าคิดว่าง่ายๆนะ
โดย noppadonsk ศ 07 ก.พ. 2020 9:23 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
113
ศ 07 ก.พ. 2020 9:23 am โดย noppadonsk
B - ระบบ LINE API ไม่ตอบสนองคำสั่ง [2020-02][001]
โดย thatsawan พฤ 06 ก.พ. 2020 6:31 pm บอร์ด MD-CRM - Tester
6
17
ศ 07 ก.พ. 2020 4:37 pm โดย mindphp
วิธีการทำ favorite icon เพื่อใช้สำหรับแสดงบน safari
โดย Ittichai_chupol พฤ 06 ก.พ. 2020 5:36 pm บอร์ด PHP Knowledge
0
126
พฤ 06 ก.พ. 2020 5:36 pm โดย Ittichai_chupol
สอบถามครับ ต้องการสร้างเลขรันนัมเบอร์ แล้วรีเซ็ตทุกวัน ต้องทำยังไงครับ
โดย chatee supasand พฤ 06 ก.พ. 2020 12:00 pm บอร์ด Programming - C/C++ & java & Python
6
166
พฤ 06 ก.พ. 2020 3:33 pm โดย chatee supasand
เป็นเดือดกับลูกค้า
โดย noppadonsk พฤ 06 ก.พ. 2020 11:41 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
80
พฤ 06 ก.พ. 2020 11:41 am โดย noppadonsk
วิธีการสร้าง listbox ที่เมือมีการเลือกรหัสแล้วจะแสดงข้อมูลที่มีรหัสเดียวกับที่เลือก
โดย Ittichai_chupol พ 05 ก.พ. 2020 6:33 pm บอร์ด Jquery & Ajax Knowledge
0
1390
พ 05 ก.พ. 2020 6:33 pm โดย Ittichai_chupol
ทำไมเปลี่ยน type ข้อมูลเป็น int ไม่ได้คับ
โดย chatee supasand พ 05 ก.พ. 2020 5:47 pm บอร์ด Programming - C/C++ & java & Python
2
84
พ 05 ก.พ. 2020 5:55 pm โดย jirawoot
ผมอยากทราบว่าถ้าหากต้องการที่จะแยกส่วนการทำงาน การแบ่งชุดออกข้อมูลออก มันของแต่ละตาราง ใน phpbb
โดย Ittichai_chupol พ 05 ก.พ. 2020 4:23 pm บอร์ด Programming - PHP
3
131
พ 05 ก.พ. 2020 7:32 pm โดย thatsawan
คำสั่ง Colspan และ Rowspan ใน HTML คืออะไร
โดย chatee supasand พ 05 ก.พ. 2020 2:30 pm บอร์ด HTML CSS
0
1370
พ 05 ก.พ. 2020 2:30 pm โดย chatee supasand
ท่านตลกหรอพระเจ้า?
โดย noppadonsk พ 05 ก.พ. 2020 10:53 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
60
พ 05 ก.พ. 2020 10:53 am โดย noppadonsk
อยากทราบวิธีการแก้ไข้ ปํญหาเนื่องจากการติดตั้ง ตาราง โดย phpbb ที่มีจำนวนคอลัมมากๆๆ
โดย Ittichai_chupol อ 04 ก.พ. 2020 2:21 pm บอร์ด Programming - PHP
2
92
อ 04 ก.พ. 2020 2:32 pm โดย Ittichai_chupol
ถึงกับไปไม่เป็น
โดย noppadonsk อ 04 ก.พ. 2020 11:04 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
79
ศ 07 ก.พ. 2020 11:40 am โดย LEG
B - บอร์ด Odoojob เข้าไม่ได้ครับ
โดย jamepiyawat อ 04 ก.พ. 2020 10:39 am บอร์ด Odoojob.com - Tester
0
4
อ 04 ก.พ. 2020 10:39 am โดย jamepiyawat
สอบถามครับ ต้องการตัดค่าที่ซ้ำกันออกต้องทำไงครับ
โดย chatee supasand จ 03 ก.พ. 2020 2:19 pm บอร์ด Programming - C/C++ & java & Python
2
263
จ 03 ก.พ. 2020 2:41 pm โดย chatee supasand
กดsaveแล้วerrorครับ(สอนเขียน PHP ติดต่อฐานข้อมูล MySQL อัพโหลดภาพ เพิ่ม ลบ แก้ไข Database)
โดย jutikul1012 จ 03 ก.พ. 2020 11:02 am บอร์ด Programming - PHP
0
1709
จ 03 ก.พ. 2020 11:02 am โดย jutikul1012
อย่าลืมเซฟงานนะ
โดย noppadonsk จ 03 ก.พ. 2020 10:45 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
143
จ 03 ก.พ. 2020 11:01 am โดย thatsawan
ขอคำแนะนำเทคนิคพแดี พอดีผมกำลังหัดทำเว็บด้วย wordpress
โดย Anonymous จ 03 ก.พ. 2020 7:47 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
1
165
จ 03 ก.พ. 2020 11:24 am โดย mindphp
ทำความเข้าใจกับคีย์ลัด google Sheetsl เพื่อให้การทำงานง่ายขึ้น
โดย nutchasn ส 01 ก.พ. 2020 6:37 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
69
ส 01 ก.พ. 2020 6:37 pm โดย nutchasn
เพิ่มทักษะการใช้โปรแกรม Microsoft Excel ให้คำนวณและวิเคราะห์ได้ง่ายขึ้น
โดย nutchasn ส 01 ก.พ. 2020 5:53 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
68
ส 01 ก.พ. 2020 5:53 pm โดย nutchasn
ความแตกต่างของ google Slides กับ powerpoint เพื่อเลือกใช้ในการนำเสนอ
โดย nutchasn ส 01 ก.พ. 2020 5:02 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
66
ส 01 ก.พ. 2020 5:02 pm โดย nutchasn