งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความ เหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมี ดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความ เหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมี ดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด."— ใบสำเนางานนำเสนอ:

1 Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความ เหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมี ดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด ๆ ฟังก์ชั่น mod จะให้ผลลัพธ์เป็นเศษที่ได้จาก การหาร เช่น 10 mod 3 = 1 5 mod 3 = 2 ดังนั้น ค่า n จึงมีผลต่อขนาดของตารางแฮช โดยมี ข้อแนะนำว่าค่าที่นำมาใช้ควรเป็นค่าจำนวน เฉพาะที่ใกล้เคียงกับขนาดของตารางที่ต้องการ เช่น หากต้องการสร้างตารางแฮชที่มีขนาด 100 ช่อง ค่า n ที่แนะนำคือ 101

2 1. Mod ฟังก์ชั่นแฮชที่นิยมกันมากก็คือ mod เขียนเป็น สัญลักษณ์ได้ดังนี้ H(K) = K MOD M เมื่อกำหนดให้ – k คือ ค่าข้อมูลที่ต้องการจัดเก็บ –M คือ ขนาดของเนื้อที่ที่กำหนดไว้ แฮชชิ่งฟังก์ชันถูกใช้งานสองอย่าง คือ 1. กำหนดแอดเดรสให้ชุดข้อมูล 2. บอกแอดเดรสที่ต้องไปค้นหา เมื่อระบุข้อมูลที่ต้องการค้น ซึ่งงานทั้งสองอย่างนี้ต่างกันก็คือ การแปลงคีย์ให้เป็นแอดเดรส

3 ตัวอย่าง แปลงคีย์เป็นที่อยู่ โดยใช้ฟังก์ชั่น mod 11 เพื่อจัดเก็บข้อมูล H(K) = K MOD M H(9) = 9 mod 11 = 9 H(7) = 7 mod 11 = 7 H(15) = 15 mod 11 = 4

4 2. การค้นหาข้อมูล โดยการนำคีย์ที่ต้องการ ค้นหามาผ่านฟังก์ชั่นแฮชเดียวกันกับการจัดเก็บ เช่น จากตัวอย่าง ต้องการค้นหาคีย์ 33 H(33) = 33 mod 11 = 0 ไปค้นหาที่ตำแหน่ง 0 ไม่พบข้อมูล 33 แสดงว่าไม่มีข้อมูล 33 อยู่ในชุดข้อมูลนี้ จากกระบวนการในการค้นหาข้อมูลดังกล่าว จะพบว่าประสิทธิภาพของการค้นหาคือ O(1) เนื่องจากไม่ว่าจะมีข้อมูลมากหรือน้อยเท่าใด การเปรียบเทียบก็จะกระทำเพียง 1 ครั้ง เท่านั้น นับว่าเป็นวิธีที่มีประสิทธิภาพสูง ตัวอย่าง

5 ตัวอย่างของวิธีการหาร Mod H(100) = 100 mod 10 = 0 H(251) = 251 mod 10 = 1 H(123) = 123 mod 10 = 3

6 2.Mid-Square 2. Mid-Square คือการนำคีย์มายก กำลังสองแล้วเลือกเฉพาะค่ากลางของ ข้อมูล จำนวนหลักขึ้นอยู่กับความต้องการใน การใช้งาน ตัวอย่างเช่น คีย์คือ 12 ผ่านฟังก์ชั่น Mid-Square คือ 12 2 = 144 เลือกเฉพาะตำแหน่งกลางได้ ค่าที่อยู่เป็น 4

7 3.Folding วิธีการพับตัวเลข Folding คือการนำคีย์มาแบ่งเป็นส่วน ๆ พับ ทบเข้าหากันแล้วหาผลรวม เช่น กำหนดตำแหน่งที่อยู่ ไว้ 3 หลัก

8 3. วิธีการพับตัวเลข (Folding Method) จะต้องทราบว่ามีการกำหนดตำแหน่งสำหรับเก็บ ข้อมูลไว้สูงสุดเป็นกี่หลัก หลังจากนั้นจะนำค่าที่ต้องการไปจัดเก็บลงบน ตำแหน่งต่าง ๆ นั้น เช่น กำหนดตำแหน่งกำหนด ไว้ 5 หลัก

9 ตัวอย่าง วิธีการพับ ตัวเลข กำหนดตำแหน่งที่อยู่ ไว้ 5 หลัก

10 การชนกันของข้อมูล การจัดเก็บข้อมูลลงในตารางแฮช อาจพบ ปัญหาที่เรียกว่าการชนกัน (Collision) ของ ข้อมูล เกิดจากการที่นำคีย์มาผ่านฟังก์ชั่นแล้ว ได้ที่อยู่เป็นตำแหน่งเดียวกัน ตัวอย่างเช่น ต้องการจัดเก็บ 22 และ 33 ในตารางแฮช H(22) = 22 mod 11 = 0 H(33) = 33 mod 11 = 0 วิธีการในการแก้ปัญหาการชนกันแบ่งเป็น 2 วิธีใหญ่ ๆ ดังนี้

11 1. Open Addressing เป็นวิธีที่ใช้ตำแหน่งที่เหลือในตารางในการเก็บ ข้อมูลที่ชน มีวิธีย่อย ๆ คือ 1.1 Linear Probing คือการมองหา ช่องว่างถัดไปในตาราง แล้วจัดเก็บข้อมูลที่ ชนในช่องว่างแรกที่พบ หากใช้วิธีนี้ในการ จัดเก็บ ในขั้นตอนของการค้นหา ก็จะต้อง ดำเนินการด้วยวิธีเดียวกัน แต่ Linear Probing อาจทำให้เกิดปัญหาตามมา คือ การแทนที่ที่ไม่ถูกต้อง นั่นคือ เมื่อพบช่องว่างสำหรับคีย์ที่ชนกันแล้ว หาก หลังจากนี้มีคีย์ที่เข้ามาใหม่ที่เมื่อผ่านฟังก์ชั่น แล้วได้ที่อยู่ที่แท้จริงเป็นตำแหน่งเดียวกันกับตัว ที่ชน ก็จะทำให้เกิดการชนกันเช่นนี้เรื่อยไป

12 ตัวอย่าง Linear H(100) = 100 mod 10 = 0 H(251) = 251 mod 10 = 1 H(123) = 123 mod 10 = 3 H(250) = 250 mod 10 = H(543) = 543 mod 10 = 3 543

13 1.2 Double Hashing Double Hashing1.2 Double Hashing เป็นความ พยายามแก้ปัญหาของ linear probing ที่ เสาะหาในตำแหน่งที่ซํ้า ๆ อันเป็นสาเหตุของ การชนครั้งแล้วครั้งเล่า โดยอาศัย randomness ของ hash function ในการหาตำแหน่งใหม่หลังจาก เกิดการชนกันขึ้น collision resolution function ก็สร้างในรูปแบบตรงไปตรงมา ที่นิยมกันมาก คือ F(i) = i * h2(x) ซึ่ง h2(x) เป็นฟังชันใหม่ที่ไม่ซํ้ากับ hash function เดิม

14 2. Chaining 2. Chaining วิธีนี้เป็นการสร้าง singly linked list ที่มีตำแหน่งหลักใน hash table เป็นฐาน ( หัว ) ของ chain( หนังสือบางเล่ม เรียกว่า bucket) แต่ละตำ แหน่งหลักจึงมี list ของตนเองที่เก็บข้อมูลที่ซํ้ากันอันเป็นผลพวง มาจากการ mapped หรือ hashed เข้าสู่ตำ แหน่งหลักเดียวกัน ตัวอย่างเช่น ต้องการจัดเก็บ 22 และ 33 ในตารางแฮช H(22) = 22 mod 11 = 0 H(33) = 33 mod 11 = 0 ตารางแฮช H(44) = 44 mod 11 = 0

15 ตัวอย่างเช่น ต้องการจัดเก็บ 22 และ 33 ในตารางแฮช H(22) = 22 mod 11 = 0 H(33) = 33 mod 11 = 0 H(44) = 44 mod 11 = 0

16 จากตัวอย่างเป็นการใช้พื้นที่ในตารางเหมือนกับ Open Addressing แต่ใช้หลักการของการเชื่อมโยง และพื้นที่ที่ ใช้เป็นส่วนที่เรียกว่าพื้นที่ส่วนเกิน คือพื้นที่ที่กันไว้ สำหรับคีย์ที่ชน เราอาจใช้การเชื่อมโยงโดยใช้ singly link list ได้ดังรูป

17 แบบฝึกหัด 1. กำหนดให้มีการเก็บข้อมูลในแถวลำดับ ต่อไปนี้ จงหาจำนวนครั้งในการค้นหาข้อมูลที่มีค่า 19 ในแถวลำดับด้วยวิธีเรียงลำดับ (Sequential Search) 2. กำหนดให้มีการเก็บข้อมูลในแถวลำดับ ต่อไปนี้ จงแสดงขั้นตอนการค้นหา 9 ด้วยวิธีการค้นหา แบบทวิภาค (Binary Search)


ดาวน์โหลด ppt Hashing Function มีหลายฟังก์ชั่น การเลือกใช้ขึ้นอยู่กับความ เหมาะสมของข้อมูล ตัวอย่างของฟังก์ชั่นแฮชมี ดังนี้ 1. Mod คือการนำค่าคีย์มา mod ด้วยค่า n ใด.

งานนำเสนอที่คล้ายกัน


Ads by Google