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

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

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 ตัวอย่าง 9 7 15 60 32 40 53 84 21 96 1. แปลงคีย์เป็นที่อยู่ โดยใช้ฟังก์ชั่น 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 ครั้ง เท่านั้น นับว่าเป็นวิธีที่มีประสิทธิภาพสูง ตัวอย่าง 9 7 15 60 32 40 53 84 21 96

5 ตัวอย่างของวิธีการหาร Mod 0123456789 100251123 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) จะต้องทราบว่ามีการกำหนดตำแหน่งสำหรับเก็บ ข้อมูลไว้สูงสุดเป็นกี่หลัก หลังจากนั้นจะนำค่าที่ต้องการไปจัดเก็บลงบน ตำแหน่งต่าง ๆ นั้น เช่น 3510300399456 กำหนดตำแหน่งกำหนด ไว้ 5 หลัก

9 ตัวอย่าง วิธีการพับ ตัวเลข 3 5 1 0 3 0 0 3 9 9 4 5 6 8 3 8 0 2 0 3 0 0 3 1 5 3 6 5 4 9 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 0123456789 100251123 H(100) = 100 mod 10 = 0 H(251) = 251 mod 10 = 1 H(123) = 123 mod 10 = 3 H(250) = 250 mod 10 = 0 250 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. กำหนดให้มีการเก็บข้อมูลในแถวลำดับ ต่อไปนี้ 12 99 58 32 10 8 19 70 จงหาจำนวนครั้งในการค้นหาข้อมูลที่มีค่า 19 ในแถวลำดับด้วยวิธีเรียงลำดับ (Sequential Search) 2. กำหนดให้มีการเก็บข้อมูลในแถวลำดับ ต่อไปนี้ 1 5 7 9 10 45 56 88 99 จงแสดงขั้นตอนการค้นหา 9 ด้วยวิธีการค้นหา แบบทวิภาค (Binary Search)


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

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


Ads by Google