Page 15 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 15
การวัดประสิทธิภาพและความซับซ้อนของขั้นตอนวิธี 2-5
เร่ืองท ่ี 2.1.1
ความห มายข องบิ๊กโอ บ๊ิกโอเมก า และบกิ๊ ทีตา
ในเร่ืองนี้จะกล่าวถึงการเติบโตของฟังก์ชัน การศึกษาอัตราการเติบโตของฟังก์ชันเป็นเร่ืองท่ีน่าสนใจและ
เกยี่ วขอ้ งโดยตรงกบั การวดั ประสทิ ธภิ าพของขนั้ ตอนวธิ ดี ว้ ยการค�ำนวณหาฟงั กช์ นั เวลา โดยสมมติให้ T(n) เปน็ ฟงั กช์ นั
เวลาท่ีใช้ในการประมวลผลเพ่ือแก้ปัญหาขนาด n ของข้ันตอนวิธีหนึ่ง ดังนั้น อัตราการเติบโตของฟังก์ชัน T(n) จึงใช้
เป็นตัววัดประสิทธิภาพของข้ันตอนวิธีนี้ได้ โดยการพิจารณาว่า ฟังก์ชัน T(n) เพ่ิมขึ้นเร็วหรือช้าในสัดส่วนแบบใดกับ
ขนาดข องป ัญหา ขั้นต อนว ิธีท ี่มีประสิทธิภาพค ือ เวลาท ี่ใช้ท �ำงาน T(n) เพิ่มข ้ึนช ้าเมื่อข นาดข องป ัญหา (n) เพิ่มข ้ึนน ่ันเอง
ดังน้ัน อัตราก ารเติบโตของฟังก์ชันจ ึงส�ำคัญ และในเร่ืองนี้จ ะศ ึกษาส ัญลักษณ์ท ี่ใช้อธิบายการเติบโตของฟังก์ชัน T(n)
เพ่ือน�ำไปประยุกต์ใช้อ ธิบายป ระสิทธิภาพของข ั้นต อนวิธี
ให้พิจารณาฟังก์ชัน 2 ฟังก์ชันใดๆ ท่ีมีค่ามากกว่าศูนย์ เช่น ฟังก์ชัน f(x) = 1000x และฟังก์ชัน g(x) = x2
จะเห็นว่า ฟังก์ชัน f(x) จะมีค่ามากกว่า g(x) เมื่อ x มีค่าน้อย แต่เมื่อ x มีค่ามาก (มากกว่า 1000) แล้ว g(x) จะมีค่า
มากกว่า f(x) ทั้งน้ี เนื่องจาก g(x) เป็นฟ ังก์ชันท ี่มีก ารเติบโตท ี่เร็วก ว่า f(x) ดังแ สดงในต ารางท ี่ 2.1 และภ าพท ี่ 2.1 สังเกต
ได้ว ่า ที่ x = 1000 ซึ่งเป็นจ ุดต ัดระหว่างฟ ังก์ชัน f(x) และ g(x) เป็นจ ุดเปลี่ยนค วามส ัมพันธ์ร ะหว่าง f(x) กับ g(x) นั่นเอง
ท�ำให้ทราบว่า เม่ือ x มีค่ามากกว่า 1000 ฟังก์ชัน g(x) มีค่าม ากกว่า f(x) แสดงว ่า g(x) มีอัตราการเติบโตของฟังก์ชันที่
เร็วกว่า f(x) ซึ่งส ามารถอ ธิบายได้ด ้วยบทน ิยามต ่างๆ ดังต่อไปน ี้
ตารางท่ี 2.1 คา่ ข องฟังก์ชัน f(x) = 1000x และ g(x) = x2
x f(x) = 1000x g(x) = x2
1 1,000 1
10 10,000
100
100 100,000 10,000
1,000 1,000,000 1,000,000
10,000 10,000,000 100,000,000
100,000 100,000,000 10,000,000,000