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

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

                       ตารางท​ ี่ 2.2 รูปแ​ บบ​ฟงั กช์ นั ต​ า่ งๆ ที่​เรียงล​ �ำ ดบั ต​ าม​อัตรา​การเ​ติบโต

             ฟังก์ชนั                 ชอ่ื รปู แบบฟังกช์ ัน                                              บ๊ิกโอ
           c              ฟังก์ชันค่าคงตัว (constant)                                              O(1)
                          ฟังก์ชันลอการิธึม (logarithm)
           log x          ฟังก์ชันล็อกสแควร์ (log-squared)                                         O(log x)
           log2 x         ฟังก์ชันเชิงเส้น (linear)                                                O(log2 x)
                          -
           x              ฟังก์ชันกำ�ลังสอง (quadratic)                                            O(x)
                          ฟังก์ชันกำ�ลังสาม (cubic)
           x log x        ฟังก์ชันเอ็กซ์โพเนนเชียล (exponential)                                   O(x log x)
           x2                                                                                      O(x2)
           x3                                                                                      O(x3)
           2x หรือ ex                                                                              O(2x) หรือ O(ex)

ตวั อย่างท​ ่ี 2.14  จงเ​รียงล​ �ำดับ​อัตรา​การ​เติบโต​ของฟ​ ังก์ชันต​ ่อ​ไป​น้ี​จากช​ ้าไ​ป​เร็ว
           3x4 + 5	 x2	 4x6	 6x log x	 52	3x
วธิ ​ีท�ำ
           ประมาณเ​ป็น​บ๊ิกโ​อจ​ ะ​ได้ว​ ่า
           3x4 + 5  =  O(x4)
           x2  =  O(x2)
           4x6  =  O(x6)

           6x log x  =  O(x log x)
           52  =  O(1)
           3x  =  O(3x)

           ดังน​ ้ัน เรียงล​ �ำดับ​อัตรา​การ​เติบโต​ของฟ​ ังก์ชัน​จากช​ ้าไ​ปเ​ร็วไ​ด้ด​ ังน้ี4x6	 3x
           52	      6x log x	 x2	 3x4 + 5	

       เม่ือ​พิจารณา​ถึง​ฟังก์ชัน​เวลา T(n) ที่​ใช้​ใน​การ​ประมวล​ผล​เพื่อ​แก้​ปัญหา​ขนาด n ใน​การ​วัด​ประสิทธิภาพ​ของ​
ข้ัน​ตอน​วิธี ว่า​ท�ำงาน​ช้า​หรือ​เร็ว ฟังก์ชัน T(n) ถ้า​โต​ข้ึน​อย่าง​รวดเร็ว​เม่ือ n มี​ขนาด​ใหญ่​ข้ึน แสดง​ว่า​ใช้​เวลา​มาก​ใน​การ​
ประมวล​ผล​ข้อมูล​ขนาดใ​หญ่ นั่น​คือ ท�ำงานไ​ด้ช​ ้าไ​ม่มี​ประสิทธิภาพ ส่วน​ฟังก์ชัน T(n) ถ้าโ​ตช​ ้า แสดง​ว่าใ​ช้เ​วลา​น้อย​ใน​
การ​ประมวล​ผล​ข้อมูล​ขนาดใ​หญ่ น่ัน​คือ ท�ำงาน​ได้​เร็ว​และ​มี​ประสิทธิภาพ​น่ันเอง จะ​เห็น​ได้​ว่า  การ​เติบโต​ของ​ฟังก์ชัน​
ใน​ตาราง​ท่ี 2.2 สรุป​ได้​ว่า ถ้า​ขั้น​ตอน​วิธี​ใช้ T(n) เป็น​ฟังก์ชัน​ค่า​คงตัว การ​ท�ำงาน​ของ​ขั้น​ตอน​วิธี​จะ​ไม่​ขึ้น​อยู่​กับ​ขนาด​
ของ​ข้อมูล​เลย ถ้า​ขั้นต​ อน​วิธี​มี​การ​ใช้​เวลา T(n) เป็น​ฟังก์ชัน​ลอก​าร​ ิธึม การ​ท�ำงาน​ของ​ข้ันต​ อน​วิธี​จะม​ ี​ประสิทธิภาพ​ดีก​ ว่า​
ขั้น​ตอน​วิธี​ที่​ใช้​เวลา​เป็น​ฟังก์ชัน​เชิง​เส้น ใน​ท่ี​น่ี​เม่ือ​พูด​ถึง​ฟังก์ชัน T(n) ให้​นึกถึงฟ​ ังก์ชัน​ใดๆ ที่​มี​โดเมน​เป็น​จ�ำนวนเต็ม​
แทนไ​ด้ เช่น f(n) เป็นต้น
   26   27   28   29   30   31   32   33   34   35   36