ดาวน์โหลดงานนำเสนอ
งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ
1
การแบ่งแยกและเอาชนะ Divide & Conquer
ตอนที่ 2
2
บทนำ กลวิธีนี้มีใช้เพื่อจัดการกับปัญหาในหลากหลายศาสตร์กับการออกแบบ อัลกอริทึม เพื่อแก้ไขปัญหาเชิงคำนวณ แนวคิดการแก้ปัญหาแบบนี้มี หลักการว่า แบ่งปัญหาใหญ่นั้นออกเป็นปัญหาย่อยๆ หลาย ๆ ปัญหาที่มี ขนาดเล็กกว่า หาคำตอบของแต่ละปัญหาย่อย แล้วนำคำตอบย่อยๆ ที่ได้นี้มา รวมกันเพื่อกลายเป็นคำตอบของปัญหาใหญ่ อาจจะซับซ้อนน้อยกว่า และ ใช้เวลาโดยรวมที่ดีกว่าก็ได้ อัลกอริทึมแบบแบ่งแยกและเอาชนะมักมีประสิทธิภาพที่ดีกว่าอัลกอริทึมที่ ทำงานอย่างตรงไปตรงมา ค่อยเป็นค่อยไป นอกจากนี้ยังเขียนบรรยายตัว อัลกอริทึมในรูปของการทำซ้ำแบบเรียกซ้ำได้อย่างเหมาะมาก ทำให้เขียน บรรยายอัลกอริทึมได้อย่างไม่ซับซ้อน และวิเคราะห์ประสิทธิภาพการทำงาน ได้ง่าย
3
หัวข้อ โครงของอัลกอริทึมแบบ Divide & Conquer ตัวอย่าง Quick select
Min + Max
4
โครงของอัลกอริทึมแบบ Divide & Conquer
5
Divide – Conquer - Combine
DQ ( P) { if ( P is trivial ) return Solve ( P ) Divide P into P1, P2, … , Pk for ( i =1to k ) Si = DQ ( Pi ) S = Combine ( S1, S2, …, Sk) return S }
6
Quick select
7
Selection : หาตัวน้อยสุดอันดับ k
8
Sort ได้ d[k] คือคำตอบ
9
ใช้ min-heap
10
ใช้ max-heap
11
QuickSelect
12
QuickSelect
13
QuickSelect : วิเคราะห์
14
QuickSelect : กรณีเร็วสุด
15
QuickSelect : กรณีช้าสุด
16
QuickSelect : กรณีเฉลี่ย
17
QuickSelect : กรณีช้าสุด O(n)
18
Median – of – Median – of - Five
19
Median – of – Median – of - Five
20
เวลาในการหา mm5
21
QuickSelect
22
Min + Max
23
min + max
24
min + max : แบ่งครึ่ง
25
min + max : แบ่งครึ่งๆ
26
min + max : แบ่งครึ่งๆ
27
min + max : แบ่ง(n-2) + 2
28
min + max : แบ่ง(n-2) + 2
29
วิเคราะห์ : แบ่ง(n-2) + 2
31
แบ่งครึ่งเหลือเศษมากกว่า
งานนำเสนอที่คล้ายกัน
© 2024 SlidePlayer.in.th Inc.
All rights reserved.