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

การค้นหาแบบแฮช (Hashing search) 

กระบวนการค้นหาแบบ Hashing search

 

การค้นหาแบบแฮช เป็นวิธีการค้นหาข้อมูลโดยที่ใช้การแปลงคีย์ (Key) ให้เป็นตำเเหน่ง (Address) ที่อยู่ในพื้นที่เก็บข้อมูล โดยใช้เทคนิคการสร้างตารางมาเพื่อเก็บคีย์ดังกล่าว ในการเเปลงคีย์ให้เป็นแอดเดรส คือการแปลงข้อมูลให้อยู่ในตารางแอดเดรสที่เตรียมไว้ซึ่งตารางนี้เรียกว่า ตารางแฮช (Hash Table)

 

หลักการของ Hashing search 

  • เป็นวิธีการค้นหาข้อมูลที่ใช้การแปลงคีย์ (Key) ให้เป็นตำแหน่ง (Address) ที่อยู่ในพื้นที่เก็บข้อมูล โดยใช้เทคนิคการสร้างตารางมาเพื่อเก็บคีย์ดังกล่าว

  • การแปลงคีย์ให้เป็นแอดเดรส คือการแปลงข้อมูลให้ไปอยู่ในตารางแอดเดรสที่เตรียมไว้ซึ่งเรียตารางนี้ว่า ตารางแฮช (Hash Table
  • การแปลงค่านี้ต้องอาศัยฟังก์ชัน H(k) เป็นตัวช่วยในการหาแอดเรดสของค่าคีย์ k (ค่า H(k) คือแอดเรดสของคีย์ k นั้นเอง)
  • การค้นหาด้วยวิธีนี้จะไม่ขึ้นอยู่กับจำนวนข้อมูล
  • อาศัยหลักการคำนวณตำเเหน่งที่เก็บข้อมูลจากคีย์ที่กำหนด นั้นคือจะต้องหา Hashing Function ที่เหมาะสม

 

Hashing function อย่างง่าย

hash(key) = key MOD TableSize 

TableSize คือ ขนาดของตารางที่จัดเก็บ ควรเลือกค่าที่เป็นจำนวนเฉพาะ (Prime Numbers

 

ชุดตัวเลข 9,17,22,14,13,5 กำหนดแฮชชิ่งฟังก์ชันด้วยสมการ H(K) = K MOD 9

ค่าที่ได้จากแฮชชิ่งฟังก์ชันแสดงได้ดังนี้ 

H(9) = 8                           H(17) = 8                                 H(22) = 4

H(14) = 5                           H(13) = 4                                 H(8) = 8

 

คีย์ 17 ได้ตำเเหน่ง แอดเดรสตรงกับคีย์ 8 

คีย์ 22 ได้ตำเเหน่ง แอดเดรสตรงกับคีย์ 13

การแก้ปัญหาการชนกันของคีย์ (Collision) ทำโดยการเก็บคีย์ใน Hash table แบบ 

 

สรุป การค้นหาแบบแฮช จะเป็นวิธีการค้นหาข้อมูลที่ใช้การแปลงคีย์ (key) ให้เป็นตำแหน่ง(Address) ที่อยู่ในพื้นที่เก็บข้อมูล โดยใช้เทคนิคการสร้างตารางมาเพื่อเก็บคีย์ดังกล่าวการแปลงค่านี้ต้องอาศัยฟังชัน H(k) เป็นตัวช่วยในการหาแอดเดรสของค่าคีย์ k (ค่า H(k) คือ แอดเดรสของคีย์ K นั้นเอง)

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
งานประจำวันที่ 19 สิงหาคม 2562
โดย chatee supasand จ 19 ส.ค. 2019 10:03 am บอร์ด MT33 - นายชาตรี สุภาแสน
2
8
จ 19 ส.ค. 2019 7:51 pm โดย chatee supasand
google เปลี่ยนดีไซน์หน้าค้นหาใหม่ในสมาร์ทโฟนและแสดงไอคอนของเว็บไซต์ได้
โดย jamepiyawat จ 19 ส.ค. 2019 6:33 pm บอร์ด Share Knowledge
0
14
จ 19 ส.ค. 2019 6:33 pm โดย jamepiyawat
Windows 10 เตรียมอัพฟีเจอร์เช็คความร้อนของ GPU โดยไม่ต้องง้อโปรแกรมเสริมได้แล้วใน Build 18963
โดย chatee supasand จ 19 ส.ค. 2019 6:23 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
10
จ 19 ส.ค. 2019 6:23 pm โดย chatee supasand
อยากทราบวิธีการคำนวนจำนวนบรรทัด ใน google sheet
โดย Ittichai_chupol จ 19 ส.ค. 2019 4:19 pm บอร์ด ถาม - ตอบ คอมพิวเตอร์
0
10
จ 19 ส.ค. 2019 4:19 pm โดย Ittichai_chupol
การเสนอราคาสมาคมสโมสรนักลงทุน
โดย EyePornnipa จ 19 ส.ค. 2019 2:59 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
4
จ 19 ส.ค. 2019 2:59 pm โดย EyePornnipa
สอบถาม wkhtmltopdf ตอนแปลงไฟล์ pdf แล้ว graph ใน javascript ไม่มาด้วย มีวิธีแก้ไขไหมครับ
โดย jirawoot จ 19 ส.ค. 2019 2:53 pm บอร์ด Programming - C/C++ & java & Python
0
13
จ 19 ส.ค. 2019 2:53 pm โดย jirawoot
สอบถาม วิธีการนับเวลาในไฟล์วีดีโอครับ
โดย jirawoot จ 19 ส.ค. 2019 11:34 am บอร์ด Programming - C/C++ & java & Python
1
21
จ 19 ส.ค. 2019 5:07 pm โดย jirawoot
งานประจำวันที่ 19 สิงหาคม 2562
โดย EyePornnipa จ 19 ส.ค. 2019 10:15 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
3
17
จ 19 ส.ค. 2019 7:33 pm โดย EyePornnipa
งานประจำวันที่ 19 กรกฎาคม 2562
โดย jamepiyawat จ 19 ส.ค. 2019 10:09 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
1
4
จ 19 ส.ค. 2019 7:56 pm โดย jamepiyawat
งานประจำวันที่ 19 สิงหาคม 2562
โดย jirawoot จ 19 ส.ค. 2019 10:01 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
4
จ 19 ส.ค. 2019 8:11 pm โดย jirawoot
สอบถามเกี่ยวกับการ บวก ลบ ใน Tuple ทำยังไงครับ ภาษา Python
โดย fuyuppe อ 18 ส.ค. 2019 3:20 pm บอร์ด Programming - C/C++ & java & Python
0
26
อ 18 ส.ค. 2019 3:20 pm โดย fuyuppe
น้องเมย์ค่ะ
โดย frenchfriesday อ 18 ส.ค. 2019 1:14 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
31
อ 18 ส.ค. 2019 1:14 pm โดย frenchfriesday
หลักการ วิธีการทำเว็บไซต์แสดงได้หลายภาษา ด้วย PHP เขียนเว็บสองภาษา
โดย jamepiyawat ส 17 ส.ค. 2019 10:17 pm บอร์ด PHP Knowledge
0
58
ส 17 ส.ค. 2019 10:17 pm โดย jamepiyawat
ขอคำแนะนำ เว็บไซด์ค่ะ
โดย Luckluck ส 17 ส.ค. 2019 8:35 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
40
ส 17 ส.ค. 2019 8:40 pm โดย mindphp
Joomla website
โดย Luckluck ส 17 ส.ค. 2019 8:17 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
20
ส 17 ส.ค. 2019 8:37 pm โดย mindphp
Socratic แอปช่วยทำการบ้านและค้นหาบทเรียน
โดย jamepiyawat ส 17 ส.ค. 2019 5:56 pm บอร์ด Share Knowledge
0
28
ส 17 ส.ค. 2019 5:56 pm โดย jamepiyawat
สอบถามการใช้อัตราแลกเปลี่ยนในการบันทึกเจ้าหนี้ต่างประเทศ
โดย EyePornnipa ส 17 ส.ค. 2019 4:06 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
2
30
ส 17 ส.ค. 2019 4:09 pm โดย EyePornnipa
คำสั่งนี้คืออะไรครับ เหมือน short if หรือเปล่าครับ
โดย jamepiyawat ส 17 ส.ค. 2019 2:22 pm บอร์ด Programming - PHP
4
51
ส 17 ส.ค. 2019 3:40 pm โดย jamepiyawat
การลงทะเบียนผู้ค้ากับภาครัฐในระบบ e-GP
โดย EyePornnipa ส 17 ส.ค. 2019 1:53 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
15
ส 17 ส.ค. 2019 1:53 pm โดย EyePornnipa
หากจ่ายชำระค่าโทรศัพท์เกิน ควรบันทึกบัญชียังไง
โดย EyePornnipa ศ 16 ส.ค. 2019 12:10 pm บอร์ด ถาม - ตอบ ธุรกิจ กฏหมาย ภาษี บัญชี
1
36
ส 17 ส.ค. 2019 11:06 am โดย Amp_Audit