ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

Quadratic probing  หมายถึงอะไร ? 

กระบวนการค้นหาแบบ Quadratic probing

 

Quadratic probing คือวิธีแก้ปัญหาความล่าช้าของวิธี linear probing จึงมีการเลือก Collision Resolution Function เพื่อลดความล่าช้าในการหาตำเเหน่งใหม่หลังจากเกิด Collision ฟังก์ชันที่ใช้ก็อยู่ในรูปแบบเดียวกับ linear probing ก็คือ F(i) = i2 โดยที่ i แทนครั้งที่หา (Probe)

การหาตำเเหน่งใหม่ครั้งเเรก สามารถคำนวณจาก 

ตำเเหน่งใหม่ (1) = h(31) + 12 = 31% 11+1  = 10%11 = 10 

 

หากมีการชนกันอัก ก็จะหาตำเเหน่งใหม่ (ครั้งที่ 2 และ 3) จาก

 

ตำเเหน่งใหม่ (2) = h(31) + 22 = 31% 11+4  = 13%11 = 2

ตำเเหน่งใหม่ (3) = h(31) + 32 = 31% 11+9  = 10%11 = 7

 

โดยจะทำเช่นนี้เรื่อย ๆ จนกว่าจะเจอตำเเหน่งว่างที่สามารถบรรจุข้อมูลลงไป จะเห็นว่า วิธีนี้สามารถใช้หลักกระโดดทีละหลาย ๆ ตำเเหน่ง โดยจะเริ่มจาก 1,4,9 เป็นต้นไปเเล้วหวังว่าจะไม่เกิดการชนเช่น วิธี linear probing ซึ่งจะขยับทีละตำเเหน่ง ทำให้มีโอกาสเกิด การชนกันกับข้อมูลอื่นสูง แต่ในทางปฏิบัติกลับไม่เกิดผลดีเท่าที่ควร เนื่องจากการกระโดดจะทำให้เกิดการข้ามตำเเหน่งในระยะคงที่เสมอ คือ 1,4,9 ตำเเหน่งเช่นนี้เรื่อย ๆ ไป 

 

ในการ Implement จริง ฟังก์ชัน F(i) จะทำงานล่าช้า จึงมีการหาวิธีลัดเพื่อให้เพิ่มประสิทธิภาพของการคำนวณ hash function ที่รวดเร็วและสิ้นเปลืองน้อยที่สุด โดยจะเห็นว่าจากวิธีข้างต้นนั้น ค่าของ collision resolution function หรือ F(i) ที่คำนวณมาได้คือ 1,4,9,16 และ 25 วิธีลัดก็อการเลี่ยงการยกกำลัง แต่จะอาศัยการคูณ และการบวก จากความสัมพันธ์ 

 

F(i) = F(i-1) + 2*i - 1 

โดย F(0) เมื่อแทนค่าในสมการความสัมพันธ์แล้ว

F(1) = F(0) + 2*1 - 1 = 1 

F(2) = F(1) + 2*2 - 1 =4

F(3) = F(2) + 2*3 - 1 = 9 

 

ซึ่งการคูณจำนวนใด ๆ ด้วยสองในระดับฮาร์ดแวร์คือการ shift  bit ของจำนวนที่ต้องการคูณสองไปทางซ้าย 1 ครั้ง ทำให้การคูณค่าของ F(i) สามารถกระทำได้อย่างรวดเร็ว เพราะ operations ที่ใช้คือค่าเก่าเพียงค่าเก่าของ F(i) (คือ F(i)) การ shift bit และการลบหนึ่ง เท่านั้น 

 

สรุป Quadratic probing เป็นวิธีที่ 2 ของ Open addressing ซึ่งถูกออกแบบมาในการแก้ปัญหาความล่าช้าของ linear probing โดยจะเลือกใช้ Collision Resolution Function เพื่อลดความล่าช้าในการหาตำแหน่งใหม่หลังจากที่เกิด Collision ฟังก์ชันที่ใช้อยู่ในรูปแบบเดียวกัน 

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF
โดย ichimarusoichi พ 23 ม.ค. 2019 3:25 pm บอร์ด Programming - C/C++ & java & Python
8
2142
พ 13 พ.ย. 2019 12:31 pm โดย dharya
ไฟล์ XAPK คืออะไร
โดย chaiyasitpraphut พ 13 พ.ย. 2019 12:11 pm บอร์ด Mobile Application Developing- Android, iOS
0
8
พ 13 พ.ย. 2019 12:11 pm โดย chaiyasitpraphut
วิธีเปิดและแก้ไขไฟล์ PSD โดยไม่ต้องลงโปรแกรม
โดย numtan5839 พ 13 พ.ย. 2019 11:59 am บอร์ด Graphic design
0
16
พ 13 พ.ย. 2019 11:59 am โดย numtan5839
สอบถาม ผมจะ add pinter จากเครื่องที่ share printer นั้นอยู่โดยเครื่องนั้นใช้ OS windows
โดย jirawoot พ 13 พ.ย. 2019 11:31 am บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
17
พ 13 พ.ย. 2019 11:31 am โดย jirawoot
แนะนำ Website แต่งรูป Online ไม่ต้องติดตั้ง
โดย numtan5839 พ 13 พ.ย. 2019 11:16 am บอร์ด Graphic design
0
42
พ 13 พ.ย. 2019 11:16 am โดย numtan5839
ขอสอบถามการบันทึกบัญชีของการซื้อบริการรายเดือนของ Line ด้วยบัตรเครดิตของผู้บริหารน่อยค่ะ
โดย nnamfon.26 พ 13 พ.ย. 2019 11:11 am บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
0
15
พ 13 พ.ย. 2019 11:11 am โดย nnamfon.26
ทำความรู้จักกับ LINE Notify
โดย chaiyasitpraphut พ 13 พ.ย. 2019 11:11 am บอร์ด IOT - Internet of things
0
14
พ 13 พ.ย. 2019 11:11 am โดย chaiyasitpraphut
กินยาคุมครั้งแรกยังไงให้ถูกวิธี ไม่ท้องแน่นอน!
โดย promotion พ 13 พ.ย. 2019 11:06 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
13
พ 13 พ.ย. 2019 11:06 am โดย promotion
ภาพ thailand-football-team
โดย numtan5839 อ 12 พ.ย. 2019 7:10 pm บอร์ด M097 - ตรีเนตร บูรณโพธิ์ทอง
3
29
พ 13 พ.ย. 2019 10:43 am โดย numtan5839
บอร์ด Mindphp.com ตอนนี้ อัพเกรด phpBB จาก 3.1 เป็น 3.2 แล้วนะ
โดย mindphp พ 13 พ.ย. 2019 4:54 am บอร์ด MindPHP News / Feedback
0
52
พ 13 พ.ย. 2019 4:54 am โดย mindphp
ติดตั้งโมดูลใน joomla 2.5 แล้ว erorr
โดย jamepiyawat อ 12 พ.ย. 2019 8:04 pm บอร์ด Joomla Development
3
78
อ 12 พ.ย. 2019 8:49 pm โดย mindphp
การใช้ confirm() ของ Javascript เพื่อ แจ้งเตือน ให้กดยืนยัน ก่อนทำการ ลบข้อมูล
โดย bankjittapol อ 12 พ.ย. 2019 7:12 pm บอร์ด Jquery & Ajax Knowledge
0
37
อ 12 พ.ย. 2019 7:12 pm โดย bankjittapol
การใช้ Domvas library แปลง code html แปลงหน้าเว็บ เป็นรูปภาพ
โดย bankjittapol อ 12 พ.ย. 2019 6:43 pm บอร์ด Jquery & Ajax Knowledge
0
29
อ 12 พ.ย. 2019 6:43 pm โดย bankjittapol
B - ต้องการสร้างใบcustomer paymentเมื่อใส่ข้อมูลที่withholding tax ไม่สามารถทำได้
โดย nnamfon.26 อ 12 พ.ย. 2019 6:20 pm บอร์ด M.D.Soft Co.,Ltd. - Tester
0
6
อ 12 พ.ย. 2019 6:20 pm โดย nnamfon.26
รู้จักกับ soil moisture sensor
โดย chaiyasitpraphut อ 12 พ.ย. 2019 5:12 pm บอร์ด IOT - Internet of things
0
29
อ 12 พ.ย. 2019 5:12 pm โดย chaiyasitpraphut
PIR Motion Sensor module คืออะไร
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:51 pm บอร์ด IOT - Internet of things
0
20
อ 12 พ.ย. 2019 4:51 pm โดย chaiyasitpraphut
แปลง code html เป็น image แต่ไม่แสดงผลลัพธ์
โดย bankjittapol อ 12 พ.ย. 2019 4:44 pm บอร์ด JavaScript & Jquery Ajax
4
77
พ 13 พ.ย. 2019 5:29 am โดย mindphp
วิธีการลงทุนที่ดีที่สุดสำหรับ "มนุษย์เงินเดือน"
โดย somying อ 12 พ.ย. 2019 4:09 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
36
อ 12 พ.ย. 2019 4:09 pm โดย somying
เปิดและปิดไฟ LED ด้วย Blynk
โดย chaiyasitpraphut อ 12 พ.ย. 2019 4:01 pm บอร์ด IOT - Internet of things
0
26
อ 12 พ.ย. 2019 4:01 pm โดย chaiyasitpraphut
เปิดและปิดไฟด้วยเซนเซอร์ตรวจจับความเคลื่อนไหว
โดย chaiyasitpraphut อ 12 พ.ย. 2019 3:20 pm บอร์ด IOT - Internet of things
0
22
อ 12 พ.ย. 2019 3:20 pm โดย chaiyasitpraphut