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

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การเดินทางจากปลวกแดง (ระยอง)- กรุงเทพฯ
โดย panudda อ 11 ก.พ. 2020 12:07 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
54
อ 11 ก.พ. 2020 12:07 pm โดย panudda
จะหยามกันเกินไปแล้ว
โดย noppadonsk อ 11 ก.พ. 2020 11:19 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
72
อ 11 ก.พ. 2020 11:19 am โดย noppadonsk
อยู่ห้องเช่าหรือคอนโดก็ทำอาหารได้เมนูง่ายๆ อยากแชร์ค่ะ
โดย Anonymous อ 09 ก.พ. 2020 5:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
107
อ 09 ก.พ. 2020 5:39 pm โดย บุคคลทั่วไป
FLIR AX8-9Hz กล้องถ่ายภาพความร้อนแบบต่อเนื่อง | IP67
โดย LEG ศ 07 ก.พ. 2020 2:39 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
103
ศ 07 ก.พ. 2020 2:39 pm โดย LEG
คัดกรองคนมีไข้ด้วยกล้องถ่ายภาพความร้อน | Thermal Imaging Camera
โดย LEG ศ 07 ก.พ. 2020 1:27 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
65
ศ 07 ก.พ. 2020 1:27 pm โดย LEG
สอบถามการใช้ selenium บน ubuntu หน่อยครับ
โดย jirawoot ศ 07 ก.พ. 2020 10:52 am บอร์ด Programming - C/C++ & java & Python
2
147
ศ 07 ก.พ. 2020 1:22 pm โดย jirawoot
อย่าคิดว่าง่ายๆนะ
โดย noppadonsk ศ 07 ก.พ. 2020 9:23 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
106
ศ 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
123
พฤ 06 ก.พ. 2020 5:36 pm โดย Ittichai_chupol
สอบถามครับ ต้องการสร้างเลขรันนัมเบอร์ แล้วรีเซ็ตทุกวัน ต้องทำยังไงครับ
โดย chatee supasand พฤ 06 ก.พ. 2020 12:00 pm บอร์ด Programming - C/C++ & java & Python
6
155
พฤ 06 ก.พ. 2020 3:33 pm โดย chatee supasand
เป็นเดือดกับลูกค้า
โดย noppadonsk พฤ 06 ก.พ. 2020 11:41 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
76
พฤ 06 ก.พ. 2020 11:41 am โดย noppadonsk
วิธีการสร้าง listbox ที่เมือมีการเลือกรหัสแล้วจะแสดงข้อมูลที่มีรหัสเดียวกับที่เลือก
โดย Ittichai_chupol พ 05 ก.พ. 2020 6:33 pm บอร์ด Jquery & Ajax Knowledge
0
1382
พ 05 ก.พ. 2020 6:33 pm โดย Ittichai_chupol
ทำไมเปลี่ยน type ข้อมูลเป็น int ไม่ได้คับ
โดย chatee supasand พ 05 ก.พ. 2020 5:47 pm บอร์ด Programming - C/C++ & java & Python
2
78
พ 05 ก.พ. 2020 5:55 pm โดย jirawoot
ผมอยากทราบว่าถ้าหากต้องการที่จะแยกส่วนการทำงาน การแบ่งชุดออกข้อมูลออก มันของแต่ละตาราง ใน phpbb
โดย Ittichai_chupol พ 05 ก.พ. 2020 4:23 pm บอร์ด Programming - PHP
3
113
พ 05 ก.พ. 2020 7:32 pm โดย thatsawan
คำสั่ง Colspan และ Rowspan ใน HTML คืออะไร
โดย chatee supasand พ 05 ก.พ. 2020 2:30 pm บอร์ด HTML CSS
0
1360
พ 05 ก.พ. 2020 2:30 pm โดย chatee supasand
ท่านตลกหรอพระเจ้า?
โดย noppadonsk พ 05 ก.พ. 2020 10:53 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
53
พ 05 ก.พ. 2020 10:53 am โดย noppadonsk
อยากทราบวิธีการแก้ไข้ ปํญหาเนื่องจากการติดตั้ง ตาราง โดย phpbb ที่มีจำนวนคอลัมมากๆๆ
โดย Ittichai_chupol อ 04 ก.พ. 2020 2:21 pm บอร์ด Programming - PHP
2
79
อ 04 ก.พ. 2020 2:32 pm โดย Ittichai_chupol
ถึงกับไปไม่เป็น
โดย noppadonsk อ 04 ก.พ. 2020 11:04 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
1
73
ศ 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
252
จ 03 ก.พ. 2020 2:41 pm โดย chatee supasand