Page 38 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 38
2-28 โครงสร้างข้อมูลและขั้นตอนวิธี
บรรทัดท่ี 5 ประกอบด ้วย การป ระมวลผ ลก ารบวกค ิดเป็น 1 หน่วยเวลา และการหารผลบวกท ี่ได้ค ิดเป็นอีก
1 หน่วยเวลา จากน ั้นน �ำผ ลหารท ่ีได้ให้ก ับต ัวแปร average คิดเป็นอีก 1 หน่วยเวลา ดังนั้น การ
ประมวลผลบ รรทัดท ี่ 5 ใช้เวลาเป็น 3 หนว่ ยเวลา
ดังน ้ัน การประมวลผลการท�ำงานท ั้ง 5 บรรทัด ใช้เวลารวมก ันเท่ากับ 1 + 1 + 2 + 2 + 3 = 9 หนว่ ยเวลา
ตวั อยา่ งท ่ี 2.18 จงป ระมาณเวลาท ี่ใช้ในก ารป ระมวลผ ล เพ่ือค �ำนวณผ ลร วม n i3 ซึ่งส ามารถเขียนเป็นข ้ันต อนว ิธีได้
ดังน้ี
iΣ=1
Procedure sum3(n)
1 BEGIN
2 sum := 0
3 FOR i := 1 to n DO
4 BEGIN
5 sum := sum + (i*i*i)
6 END
7 RETURN sum
8 END
วธิ ีท �ำ
จากข ั้นตอนวิธีข ้างต้น สามารถวิเคราะห์เวลาในก ารป ระมวลผลได้ด ังนี้
บรรทัดที่ 2 เป็นการให้ค ่าข ้อมูลกับตัวแปร sum คิดเป็น 1 หน่วยเวลา
บรรทัดท ี่ 3 เป็นค�ำส ั่งท �ำซ �้ำ for ที่มีก ารป ระมวลผ ลภ ายในซ ่อนอยู่ คือ
- การให้ค่าเริ่มต ้นก ับต ัวแปร i คิดเป็น 1 หน่วยเวลา
- ก ารตรวจสอบโดยการเปรียบเทียบ i ≤ n คิดเป็น 1 หน่วยเวลา แต่จะมีการเปรียบเทียบไป
เร่ือยๆ จนค่า i มากกว่า n ดังน้ัน จะมีการเปรียบเทียบท้ังหมด n + 1 ครั้ง คิดเป็น n + 1
หน่วยเวลา
- การเพิ่มค่าของ i ทีละ 1 คิดเป็น 1 หน่วยเวลา โดยจะมีการเพ่ิมค่า i ไปเร่ือยๆ จนถึง n
ดังนั้น มีก ารเพ่ิมค ่าของ i ท้ังหมด n คร้ัง คิดเป็น n หน่วยเวลา
ดังน้ัน เวลาที่ใช้ท้ังหมดในส ่วนน้ีคือ 1 + (n + 1) + n = 2n + 2 หน่วยเวลา
บรรทัดท ี่ 4 เป็นการแสดงส ่วนเริ่มท �ำซ ้ําของลูป for ไม่มีการป ระมวลผล
บรรทัดท่ี 5 เปน็ ค�ำส ่ังที่ให้กระท�ำภ ายในลูป for ซงึ่ จะกระท�ำบ รรทัดนี้ทงั้ หมด n ครงั้ (ตามเงอื่ นไขในลปู for)
โดยค�ำส่ังในบรรทัดน้ีมีการคูณ 2 ครั้ง การบวก 1 คร้ัง การให้ค่าผลบวกกับตัวแปร sum
อีก 1 คร้ัง รวมเป็น 4 หน่วยเวลา และเนื่องจากมีการประมวลผลบรรทัดน้ีท้ังหมด n ครั้ง
ดังนั้น จะใช้เวลาป ระมวลผ ลในส ่วนนี้ทั้งหมดคิดเป็น 4n หนว่ ยเวลา
บรรทัดท ่ี 6 เป็นการแ สดงส ่วนสิ้นส ุดการท �ำซ ํ้าของลูป for ไม่มีก ารป ระมวลผล
บรรทัดที่ 7 เป็นการค ืนค ่าของก ารป ระมวลผ ล คิดเป็น 1 หนว่ ยเวลา
เพราะฉะนัน้ การประมวลผลการท�ำงานของข้ันตอนวิธีนี้ใช้เวลารวมกันเป็น 1 + (2n + 2) + 4n + 1 = 6n + 4
หนว่ ยเวลา หรือเขียนแ ทนด ้วย ฟังก์ชัน T(n) จะได้ว ่า T(n) = 6n + 4 น่ันเอง