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

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

จะไ​ด้ว​ ่า                n      i

                T(n) 	 =	  iΣ=1  jΣ=1  2  

                	  =	      2  n         i    1  

                              iΣ=1     jΣ=1
                              n
                	  =	      2        i
                              iΣ=1

                	  =	      2  n(n + 1)
                                 2

เพราะ​ฉะน้ัน 	  	 = 	 n2 + n
                T(n) 	 = 	 n2 + n = O(n2)

       จาก​ตัวอย่าง​ท่ี 2.19 2.20 และ 2.21 จะ​เห็น​ว่า การ​พิจารณา T(n) มี​ความ​ยุ่ง​ยาก แต่​ถ้า​ใช้​กฎ​การ​หา​บ๊ิก​โอ​
ทั้ง 5 ข้อ ท่ี​แนะน�ำไ​ป​แล้ว จะ​ทราบ​ได้​ทันที​ว่า​บิ๊ก​โอ​ของ​แต่ละ​ตัวอย่าง​จะ​เป็น​อะไร เช่น​ใน​ตัวอย่าง​ท่ี 2.21 น้ี จะ​เห็น​ว่า​
เป็น​ลูป for ซ้อน​ใน 2 ลูป ลูป​แรก​จะ​มี​ขนาด​การ​วน​ท�ำซ​ �้ำ n คร้ัง (เน่ืองจาก​วน​รอบ​ค่า i ต้ังแต่ 1 ถึง n) ลูป​ซ้อน​ที่ 2
มี​ขนาด​การ​วน​ท�ำซ​ ้�ำ i ครั้ง (เน่ืองจาก​วน​รอบ​ค่า j ตั้งแต่ 1 ถึง i) แต่​เน่ืองจาก i มี​ค่า​สูงสุด​ได้​ถึง n ดัง​น้ัน จะ​มี​ขนาด​
การ​วน​ท�ำซ​ ้ําสูงสุด n ครั้ง จาก​กฎ​ข้อ​ที่ 4 ลูป for ซ้อน​ใน จะ​ได้​ว่า​เวลา​ท่ี​ใช้​ประมวล​ผล​จะ​เป็น​ผล​คูณข​ อง​ขนาดข​ อง​ลูป
for ซ้อนใ​นท​ ้ังหมด น่ันค​ ือ n × n เป็น O(n2) นั่นเอง

กิจกรรม 2.2.1
       1. 	จงห​ า​ฟงั ก์ชนั ​เวลา T(n) ทใ​่ี ช้​ในก​ ารป​ ระมวล​ผลส่วนข​ อง​โปรแกรม​ต่อ​ไปน​ ้ี พรอ้ ม​ทง้ั ​หา​บก๊ิ โ​อ
            1.1
                             FOR i := 1 to n DO
                             	 FOR j := 1 to i DO
                             		 FOR k := 1 to i + j DO
                             			 Sum := Sum + 1

            1.2
                             FOR i := 1 to n DO
                             	 FOR j := 1 to n*n*n DO
                             		 FOR k := 1 to j DO
                             			 Sum := Sum + 1
   38   39   40   41   42   43   44   45   46   47   48