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

2-20 โครงสร้างข้อมูลและขั้นตอนวิธี

       การ​ค�ำนวณ​หา​ค่า​ลิ​มิต​มี​ความ​ยุ่ง​ยาก​และ​ซับ​ซ้อน ซ่ึง​บ่อย​ครั้ง​ไม่​จ�ำเป็น​ต้องหา​ค่า​ลิ​มิต​ที่​ชัดเจน อาจ​ต้องการ​
ทราบเ​พียงว​ ่าฟ​ ังก์ชันไ​หนโ​ต​เร็วก​ ว่า​กัน ดังแ​ สดงใ​น​ภาพท​ ี่ 2.4

100f(x)                             x3  x2

80
60 x log x

40                                      5 	 10	               x
                                                              log2x
20                                                             loxg x
                                                 15 	 20
 0
   	0	

         ภาพ​ท่ี 2.4 กราฟแ​ สดง​การ​เตบิ โต​ของฟ​ งั กช์ ัน​พื้น​ฐาน​ตา่ งๆ

       อีก​วิธี​หน่ึง​ที่​สามารถ​หาความ​สัมพันธ์​ระหว่าง f(x) กับ g(x) ได้ คือ การ​แปลง​ทาง​พีชคณิต​และ​การ​พิจารณา​
เทียบเ​คียงก​ ับ​รูปแ​ บบก​ าร​เติบโต​ของฟ​ ังก์ชันท​ ี่​รู้​อยู่ก​ ่อน​แล้วว​ ่าฟ​ ังก์ชัน​ไหนโ​ต​เร็ว​กว่า​ฟังก์ชัน​ไหน​ได้

       เช่น ถ้า f(x) = x log x และ g(x) = x1.5 ฟังก์ชันไ​หนโ​ตเ​ร็ว​กว่าก​ ัน
       ให้​พิจารณา​ตัด​ทอน x ด้วย​การ​หาร​ทั้ง​สอง​ฟังก์ชัน​ด้วย x เม่ือ x มี​ค่า​เป็น​บวก​ได้ และ​ความ​สัมพันธ์​ของ​สอง​
ฟังก์ชัน​ยังค​ งเ​หมือนเ​ดิม ท�ำให้​เหลือ​การ​พิจารณาเ​พียง​ค่า​ระหว่าง log x กับ x0.5
       จากน​ ั้นพ​ ิจารณาค​ ่า​ยก​ก�ำลังส​ องข​ อง​ท้ังส​ อง​ฟังก์ชัน จะไ​ด้เ​ป็น log2 x กับ x
       ซ่ึง​ทราบ​ว่า ฟังก์ชัน x โต​เร็วก​ ว่า log x และโ​ตเ​ร็วก​ ว่า​ค่า log x ท่ี​ยก​ก�ำลัง​สอง​ด้วย (น่ันค​ ือ เม่ือ x มี​ค่าม​ ากๆ
เช่น เม่ือ x > 102 จะไ​ด้ log2 x < x เสมอ)
       ดังน​ ้ัน g(x) จึงโ​ตเ​ร็ว​กว่า f(x) ซ่ึงห​ มายความ​ว่า x1.5 โตเ​ร็วก​ ว่า x log x นั่นเอง
       ใน​ตาราง​ที่ 2.2 แสดง​ชื่อ​รูป​แบบ​ฟังก์ชัน​พื้น​ฐาน​ต่างๆ ท่ี​เรียง​ล�ำดับ​อัตรา​การ​เติบโต​ของ​ฟังก์ชัน​จาก​ช้า​ไป​ถึง
เร็ว และ​ใน​ภาพ​ที่ 2.4 แสดง​กราฟ​การ​เตบิ โต​ของ​ฟงั กช์ นั ​พน้ื ​ฐาน​ตา่ งๆ เหลา่ ​นี้ (ยกเวน้ ฟงั กช์ นั ​คา่ ​คงตวั ​กบั ​เอก็ ซ​โ์ พเนน​เชยี
ล) จะ​สังเกต​ได้​ว่า​เมื่อ​พิจารณา​ฟังก์ชัน​เวลา T(n) ที่​ใช้ใ​น​การ​ประมวล​ผล​ของ​ขั้น​ตอนว​ ิธี​หน่ึงๆ ถ้า​ฟังก์ชัน​น้ี​มีอ​ ัตรา​การ
​เติบโต​ชา้ แสดง​วา่ ​เมอ่ื ​ม​ขี อ้ มลู ​มาก ขนั้ ​ตอน​วธิ ​นี ​ยี้ งั ​คง​ท�ำงาน​ได​เ้ รว็ แต​ถ่ า้ ​ฟงั กช์ นั ​เวลา​น​ม้ี ​อี ตั รา​การ​เตบิ โต​เรว็ หมายความวา่  ​
เมื่อ​มี​ข้อมูล​มาก เวลา​ที่​ใช้​ประมวล​ก็​เติบโต​ตาม​ขนาด​ของ​ข้อมูล​และ​อาจ​ประมวล​ผล​ได้​ช้า ท�ำให้​เป็น​ข้ัน​ตอน​วิธี​ที่​ไม่มี​
ประ​สิทธ​ิภาพ​น่ันเอง เช่น ถ้า​ขั้น​ตอน​วิธี​หนึ่ง​ใช้​เวลาเ​ป็น O(log n) และอ​ ีก​ขั้นต​ อนว​ ิธีห​ นึ่ง​ใช้​เวลาเ​ป็น O(2n) เพื่อป​ ระมวล​
ข้อมูล​ให้​ได้​ผลเช่น​เดียวกัน สมมติ​ว่า n = 10 จะ​เห็น​ว่า​ข้ัน​ตอน​วิธี​แรก​จะ​ใช้​เวลา​ประมาณ log 10 ซ่ึง​เท่ากับ 1 หน่วย​
เวลาใ​นก​ าร​ประมวลผ​ ล แต่ข​ ้ันต​ อนวิธีที่สอง  จะ​ใช้​เวลา​ถึง 210  หน่วย​เวลา​ ซ่ึงช​ ้า​มาก ดัง​น้ัน​ ข้ันต​ อนว​ ิธี​แรก​จึง​ท�ำงาน​
ได้​ดี​มี​ประสิทธิภาพม​ ากกว่า​ขั้น​ตอน​วิธี​ท่ีส​ อง ท่ี​ใช้เ​วลาเ​ป็น​เอ็กซ์โ​พเนนเ​ชียล​
   25   26   27   28   29   30   31   32   33   34   35