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

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

ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์ เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการ สื่อสาร Website : ict.up.ac.th/yeunyong.

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


งานนำเสนอเรื่อง: "ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์ เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการ สื่อสาร Website : ict.up.ac.th/yeunyong."— ใบสำเนางานนำเสนอ:

1 ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์ เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการ สื่อสาร Website : ict.up.ac.th/yeunyong

2 หัวข้อวันนี้ Heap โครงสร้างของ heap heap operation Reheap Up, Reheap Down การแทน heap ในหน่วยความจำ heap sort (application of heap) ข้อดีของ heap sort 2

3 Heap คือ binary tree ที่มีคุณสมบัติ คือ แต่ละ subtree ค่าของ root >= child เสมอ  (Max-heap) หรือ แต่ละ subtree ค่าของ root <= child เสมอ  (Min-heap) เป็น complete binary tree หรือ nearly complete binary tree Heap ไม่ใช่ binary search tree 3

4 ต้นไม้ทวิภาคแบบสมบูรณ์ (complete binary tree) คือ binary tree ที่มี node เต็มทุก level ( ทุก node ที่ไม่ใช่ leaf มี child ทั้งด้านซ้ายและ ด้านขวา ) 4 nearly complete binary tree คือ binary tree ที่มี node เต็มทุก level ยกเว้น level สุดท้าย และ node ใน level สุดท้ายอยู่เรียงกันทางซ้ายมือ

5 5

6 โครงสร้างของ Max- heap 6 << ค่าที่มาก ที่สุดอยู่ที่ root เสมอ

7 โครงสร้างของ Min- heap 7 >> ค่าที่น้อย ที่สุดอยู่ที่ root เสมอ

8 ตัวอย่าง Heap ที่ถูกต้อง 8

9 ตัวอย่าง Tree ที่ไม่ใช่ Heap 9

10 Heap Operation 1. Insert & Reheap Up Insert โหนดใหม่ที่ level ล่างสุด ณ ตำแหน่งว่างด้านซ้ายสุด ( ทำให้ยังคงสภาพ ของ nearly complete หรือ complete binary tree อยู่ ) Reheap Up ปรับ tree หลังจาก insert ให้ เป็น heap 2. Delete & Reheap Down Delete ที่ Root เท่านั้น และนำ Node ที่ level ล่างสุดตำแหน่งขวาสุดขึ้นมาแทน ( ทำ ให้ยังคงสภาพของ nearly complete หรือ complete binary tree อยู่ ) Reheap Down ปรับ tree หลังจาก delete ให้เป็น heap 10

11 Reheap Up สลับที่ระหว่างโหนดที่ insert เข้ามากับ Parent ของมันเองตามหลักของ heap ทำซ้ำกับโหนดเดิมจนกว่าจะอยู่ตำแหน่งที่ ถูกต้อง 11 a heap

12 12 ตัวอย่ าง

13 Reheap Down สลับที่ระหว่างโหนดที่ตำแหน่ง root ( โหนดที่ พึ่งสลับที่มาหลังจาก delete) กับโหนดลูก ของมันเองจนกว่าโหนดนั้นจะอยู่ตำแหน่งที่ ถูกต้อง ( เลือกโหนดลูกตามหลักของ heap) ทำซ้ำจนกว่า root จะอยู่ตำแหน่งที่ถูกต้อง 13 a heap

14 14 ตัวอย่ าง Delete

15 15

16 การแทน heap ใน หน่วยความจำ นิยมแทน heap ลงในอาร์เรย์ 1 มิติ เนื่องจาก คุณสมบัติของการเป็น nearly complete ของ ตัวมันเอง ข้อมูลที่จัดเก็บลงในอาร์เรย์จะเรียงต่อกันไป ตามลำดับจากซ้ายไปขวาของแต่ละ level ใน heap จะได้ความสัมพันธ์ของตำแหน่งข้อมูลใน heap คือ parent ของโหนด i ใดๆ = i/2 ถ้า i <> 1 left child ของโหนด i ใดๆ = 2i right child ของโหนด i ใดๆ = 2i

17 17 [1][1] [2][2] [3][3] [4][4] [5][5] [6][6] [7][7] [1][1] [2][2] [3][3] [1][1] [4][4] [5][5] [6][6] [7][7]

18 Heap sort (Application of heap) สำหรับ heap ข้อมูลที่มีค่าสูงสุด / ต่ำสุดจะเก็บอยู่ที root คุณสมบัติดังกล่าว + ลักษณะการเก็บ ข้อมูล สามารถนำมาช่วยในการ เรียงลำดับข้อมูลได้  นำข้อมูลเข้าในลักษณะของ heap จนหมด  delete ทีละโหนด จนหมด  ข้อมูลที่ delete จะสลับที่กับ โหนดสุดท้ายแทน ลำดับของข้อมูลที่ delete เรียงจาก มาก -> น้อย ค่าในอาร์เรย์ เรียงจาก น้อย -> มาก 18

19 19 1. insert insert reheap up กำหนดให้ข้อมูลนำเข้าคือ 14, 70, 32, 100, 65, 56 ขั้นที่ 1 นำข้อมูลเข้า heap ทีละโหนดจนหมด 4. insert insert reheap up

20 20 7. insert insert reheap up ใน หน่วยความจำ

21 21 1. delete reheap down 3. delete reheap down ขั้นที่ 2 delete ข้อมูลทีละโหนดจนหมด ( สลับ กับโหนดสุดท้ายแทนตัดจาก heap )

22 22 5. delete reheap down 7. delete reheap down

23 23 9. delete delete เหลือโหนด เดียว ไม่ ต้องปรับ heap สิ้นสุดการ ทำงาน ข้อมูล เรียงลำดับ แล้ว

24 [1][2][3][4][5][6] ขั้นที่ 1 สร้าง heap 1. insert insert reheap up ในการเขียนโปรแกรมจริงจะเป็นการจัดการกับ อาร์เรย์ที่แทนโครงสร้าง heap ดังนั้นจากตัวอย่างข้างต้น สิ่งที่จะเกิดใน หน่วยความจำจะเป็นการเปลี่ยนแปลงค่าข้อมูล ในอาร์เรย์แทน

25 [1][2][3][4][5][6] 4. insert insert reheap up insert insert reheap up ขั้นที่ 2 delete heap สลับ 100 กับ ปรับ heap

26 [1][2][3][4][5][6] 3. สลับ 70 กับ ปรับ heap สลับ 65 กับ ปรับ heap สลับ 56 กับ ปรับ heap สลับ 32 กับ ปรับ heap สิ้นสุดการเรียงลำดับ

27 1. จงสร้าง min-heap จากข้อมูลต่อไปนี้ จงแสดงวิธีการลบข้อมูลจาก min-heap ที่ได้ จากข้อ 1 ทีละขั้นตอน 27 การบ้าน


ดาวน์โหลด ppt ต้นไม้ Tree [3] ผู้สอน อาจารย์ ยืนยง กันทะเนตร สาขาวิชาเทคโนโลยีคอมพิวเตอร์ เคลื่อนที่ คณะเทคโนโลยีสารสนเทศและการ สื่อสาร Website : ict.up.ac.th/yeunyong.

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


Ads by Google