Page 51 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 51

การวัดประสิทธิภาพและความซับซ้อนของขั้นตอนวิธี 2-41

       ข้ัน​ตอน​วธิ ​ีที่ 3 พิจารณา​การ​หา​ผล​รวม​ล�ำดับ​ย่อย โดย​อาศัย​เทคนิค​การ​เวียน​เกิด​และ​เทคนิค​การ​แบ่ง​แยก​
และ​เอาชนะ (divide  and  conquer) โดย​หลัก​การ​คือ การ​แบ่ง​ข้อมูล​ออก​เป็น 2 ส่วน​เท่าๆ กัน แล้ว​แก้​ปัญหา​กับ​
ข้อมูลเ​หล่าน​ ้ัน​อย่างเ​วียน​เกิด แล้วน​ �ำผ​ ล​ที่ไ​ด้​จาก​ท้ัง 2 ส่วน​มา​รวม​กัน​ หรือพ​ ิจารณาร​ ่วมก​ ัน ซึ่ง​ท�ำให้​มี​การป​ ระมวล​ผล​
ที่​น้อยล​ ง​กว่า​การ​แก้​ปัญหา​ทั้ง​ระบบไ​ป​ใน​คราวเ​ดียว

       โดย​ปัญหา​การ​หา​ผล​รวม​ที่​มาก​ที่สุด​ของ​ล�ำดับ​ย่อย เม่ือ​แบ่ง​ข้อมูล​เป็น 2 ส่วน​แล้ว ค�ำต​ อบ​สุดท้าย​ซ่ึง​เป็น
ผ​ ล​รวม​ท่ี​มากท​ ่ีสุดท​ ี่​เป็นไปไ​ด้​คือ​ค่า​มาก​สุด​ระหว่างค​ ่า 3 ค่า ต่อ​ไปน​ ้ี

       1. 	 ผล​รวม​ที่​มากท​ ี่สุด​ของล​ �ำดับย​ ่อยใ​นค​ ร่ึงซ​ ้ายแ​ รก
       2. 	 ผลร​ วมท​ ี่​มาก​ที่สุด​ของล​ �ำดับย​ ่อยใ​นค​ ร่ึงข​ วาห​ ลัง
       3. 	 ผล​รวม​ที่​มาก​ที่สุดข​ องล​ �ำดับ​ย่อย​ที่​อยู่ร​ ะหว่าง​คร่ึง​ซ้ายแ​ ละ​ครึ่งข​ วา
       ซึ่ง​ใน​กรณี​ที่ 3 ผล​รวม​ที่​มาก​ที่สุด​ของ​ล�ำดับ​ย่อย​จะ​หา​ได้​จาก​การ​รวม​ผล​รวม​ท่ี​มาก​ที่สุด​ใน​คร่ึง​ซ้าย​ท่ี​มี​
จ�ำนวนเต็ม​ตัว​สุดท้าย​ของ​ครึ่ง​ซ้าย​ไว้​ด้วย กับ​ผล​รวม​ที่​มาก​ที่สุด​ใน​ครึ่ง​ขวา​ที่​มี​จ�ำนวนเต็ม​ตัว​แรก​ของ​ครึ่ง​ขวา​ไว้​ด้วย
ดัง​ตัวอย่างต​ ่อ​ไปน​ ี้
       	 		 คร่ึงซ​ ้าย	 	 	 	 ครึ่งข​ วา
       8	 -4	 3	 -2	 -3	 5	 7	 -1
       ผล​รวม​ล�ำดับ​ย่อย​ที่ม​ าก​ที่สุด​ใน​ครึ่ง​ซ้าย คือ 7 (ผลร​ วมจ​ าก 8 ถึง 3)
       ผลร​ วม​ล�ำดับย​ ่อยท​ ี่ม​ าก​ที่สุดใ​นค​ รึ่งข​ วา คือ 12 (ผล​รวมจ​ าก 5 ถึง 7)
       ผลร​ วมล​ �ำดับ​ย่อย​ที่ม​ าก​ที่สุด​ที่​อยู่​ระหว่าง​ครึ่ง​ซ้าย​และ​ครึ่งข​ วา โดย​หา

            ผล​รวม​ล�ำดับ​ย่อย​ที่​มาก​ที่สุด​ใน​คร่ึง​ซ้าย​ที่​มี​จ�ำนวนเต็ม​ตัว​สุดท้าย​ของ​คร่ึง​ซ้าย​รวม​อยู่​ด้วย คือ 5
(ผล​รวม​จาก 8 ถึง -2)

            ผล​รวม​ล�ำดับ​ย่อย​ที่​มาก​ที่สุด​ใน​ครึ่ง​ขวา​ท่ี​มี​จ�ำนวนเต็ม​ตัว​แรก​สุด​ของ​ครึ่ง​ขวา​รวม​อยู่​ด้วย คือ 9
(ผล​รวมจ​ าก -3 ถึง 7)

       ดังน​ ั้น ผลร​ วม​ล�ำดับ​ย่อยท​ ี่​อยู่ต​ รงก​ ลาง​ระหว่าง​ครึ่งซ​ ้าย​และค​ ร่ึงข​ วาข​ อง​ล�ำดับ คือ 5+ 9 = 14 (ผล​รวม​จาก 8
ถึง 7)

       เพราะ​ฉะนั้น ผล​รวม​ของ​ล�ำดับ​ย่อย​ที่​มาก​ท่ีสุด​ใน​ล�ำดับ​ตัวอย่าง​น้ี คือ ค่า​มาก​ที่สุด​ของผล​รวม​ล�ำดับ​ย่อย​ท​ี่
มาก​ที่สุด​ในค​ รึ่ง​ซ้าย ผล​รวม​ล�ำดับ​ย่อย​ที่​มาก​ที่สุด​ในค​ รึ่ง​ขวา และ​ผล​รวม​ล�ำดับ​ย่อย​ที่อ​ ยู่​ตรง​กลาง​ระหว่าง​ครึ่ง​ซ้าย​และ​
ครึ่ง​ขวาข​ องล​ �ำดับ นั่น​คือ Max(7, 12, 14) = 14

       จาก​หลัก​การแ​ บ่ง​แยก​และเ​อาชนะ​นี้ ข้ัน​ตอน​วิธีท​ ี่ 3 สามารถ​เขียน​เป็นข้ันตอนวิธี​ได้ ดังน้ี
   46   47   48   49   50   51   52   53   54   55   56