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

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

  0e + 00 	 1e+06 	 2e + 06 	 3e + 06 	 4e + 06  g(x) = x2

                         f(x)
                                                           f(x) = 1000x

                                	 0 	 500 	 1000 	 1500	 2000
                                                  X0

                    ภาพท​ ี่ 2.1 ความส​ มั พันธร์​ ะหว่าง​ค่า x0 กบั ค​ า่ ​ของฟ​ ังกช์ ัน 1000x และ x2

1. 	บก๊ิ ​โอ

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

  บท​นิยาม 2.1 บกิ๊ ​โอ (O)
          ฟังก์ชัน f(x) สามารถป​ ระมาณข​ อบเขตบ​ นไ​ด้​ด้วยบ​ ิ๊ก​โอข​ อง g(x) เขียนแ​ ทน​ด้วย	
          f(x) = O(g(x)) ถ้าม​ ี​ค่า​คงตัว​บวก c ≥ 0 และ x0 ≥ 0 ที่ท​ ำ�ให้ |f(x)| ≤ c|g(x)| เมื่อ x ≥ x0

หมายเหต:ุ  	โดย​ส่วน​ใหญ่​จะ​พิจารณา​ฟังก์ชัน​ที่​มี​ค่า​เป็น​บวก ทำ�ให้​ละเว้น​การ​พิจารณา​ค่าสัมบูรณ์​ได้ และ​ทำ�ให้​การ​วิเคราะห์​
         ง่าย​ขึ้น โดย​เฉพาะอ​ ย่างย​ ิ่ง​การพ​ ิจารณา​ฟัง​ก์ชันเ​วลา T(n) ซึ่งป​ กติ​มี​ค่าม​ ากกว่า​หรือเ​ท่ากับศ​ ูนย์

       จาก​บท​นิยาม 2.1 บิ๊ก​โอ จะ​ได้​ว่า ถ้า​สมมติ​ให้ f และ g เป็น​ฟังก์ชัน​ใดๆ กล่าว​ได้​ว่า f(x) = O(g(x)) เมื่อ​มี​ค่า​
คงตัว c และ x0 ท่ี​ท�ำให้ |f(x)| ≤ c|g(x)| เม่ือ x ≥ x0 (เรียก​ว่า f(x) เป็น​บ๊ิก​โอ​ของ g(x)) จะ​เห็น​ว่า ค่า​คงตัว c และ x0
ใน​บท​นิยาม​ขอ​งบ๊ิก​โอ​คือ​ตัวยืน​ยัน​ความ​สัมพันธ์ f(x) = O(g(x)) ดัง​นั้น เพื่อ​ที่​จะ​แสดง​ว่า f(x) = O(g(x)) ต้องหา​
ตัวยืนย​ ันเ​พียง​หน่ึง​คู่​เพ่ือแ​ สดงค​ วาม​สัมพันธ์​น้ี

       การ​เปรียบ​เทียบ​อัตราก​ าร​เติบโตข​ องฟ​ ังก์ชัน​สอง​ฟังก์ชัน บท​นิย​ ามบ​ ๊ิกโ​อ​น้ี​บอกไ​ด้​ว่าอ​ ัตราก​ ารเ​ติบโตข​ อง f(x)
น้อย​กวา่ ​หรือ​เท่ากับ​อัตรา​การ​เติบโต​ของ g(x) หรือเรียก​อีก​อย่าง​หนึ่ง​ว่า​อัตรา​การ​เติบโต​ของ g(x) เป็น​ขอบเขต​บน​
(upper bound) ของอ​ ัตรา​การเ​ติบโต​ของ f(x)

       จาก​ตัวอย่าง​การ​เปรียบ​เทียบ​ฟังก์ชัน f(x) = 1000x และ g(x) = x2 ข้าง​ต้น และ​บท​นิ​ยาม​บิ๊ก​โอ​น้ี สรุป​ได้​ว่า​
จะ​มี​จุด x0 ท่ี​ท�ำให้ cg(x) มี​ค่า​เท่ากับ f(x) นั่น​คือ ใน​ที่​นี้​จาก f(x) = 1000x และ g(x) = x2 ซ่ึง​กราฟ​ทั้ง​สอง​จะ​ตัด​กัน​ที่
x = 1000 (ดังแ​ สดงใ​นภ​ าพ​ที่ 2.1)
   11   12   13   14   15   16   17   18   19   20   21