Page 26 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 26
2-16 โครงสร้างข้อมูลและขั้นตอนวิธี
ทฤษฎีบท 2.2 กำ�หนดให้ f1(x) = O(g1(x)) และ f2(x) = O(g2(x)) แล้ว (f1+ f2)(x) = O(max(|g1(x)|,|g2(x)|))
ขอ้ สังเกต จากทฤษฎีบทนี้ ถ้าก ารป ระม าณบิ๊กโอของ f1 และ f2 ได้เป็นฟังก์ชันเดียวกัน คือ g(x)
จะได้ว่า (f1 + f2)(x) เป็น O(g(x)) ด้วย เพราะว ่า max(|g(x)| , |g(x)|) = g(x)
ตวั อยา่ งท่ี 2.9 จงห าบ ๊ิกโอข องฟ ังก์ชัน g(x) = 4x + log x
วิธที �ำ
พิจารณาฟ ังก์ชัน g(x) จะได้ว่า g(x) เป็นการบวกก ันของฟังก์ชัน 4x กับ log x
โดยพิจารณาบ ิ๊กโอข องทั้งสองฟ ังก์ชัน จะได้ว ่า 4x = O(x) และ log x = O(log x)
ดังน ้ัน จากท ฤษฎีบท 2.2 จะได้ว่า g(x) = O(max(|x|, |log x|)) = O(x) นั่นเอง
2. การคณู ก ันของฟ งั กช์ ัน
ในท �ำนองเดียวกัน การป ระม าณบ ิ๊กโอส �ำหรับก ารค ูณก ันข องฟ ังก์ชัน 2 ฟังก์ชัน สามารถก ระท�ำได้เช่นเดียวกัน
โดยสรุปเป็นท ฤษฎีบทได้ ดังนี้
ทฤษฎบี ท 2.3 กำ�หนดให้ f1(x) = O(g1(x)) และ f2(x) = O(g2(x)) แล้ว (f1⋅f2)(x) = O(g1(x)⋅g2(x))
ตัวอย่างท ี่ 2.10 จงห าบ ิ๊กโอส �ำหรับฟ ังก์ชัน f(x) = (x + 1) log(x2 + 1) + 3x2
วธิ ที �ำ
เนื่องจาก f(x) เป็นการบ วกกันระหว่าง (x + 1) log(x2 + 1) กับ 3x2 สามารถแยกการพิจารณาแต่ละพจน์ได้
ดังน้ี พิจารณา (x + 1) log(x2 + 1) ซึ่งเป็นการคูณก ันร ะหว่าง (x + 1) กับ log(x2 + 1)
ดังน ั้น หาบิ๊กโอส�ำหรับ (x + 1) จะได้ (x + 1) = O(x) ...............(1)
และห าบิ๊กโอส �ำหรับ log(x2 + 1)
ซึ่งพ ิจารณาแล้ว จะเห็นว่า x2 + 1 ≤ 2x2 เมื่อ x > 1
ดังน ้ัน log(x2 + 1) ≤ log(2x2)
≤ log 2 + log x2
≤ log 2 + 2 log x
≤ 3 log x ถ้า x > 2
น่ันคือ log(x2 + 1) = O(log x)
ดังน้ัน จาก (1) และ (2) จะได้ว่า (x + 1) log(x2 + 1) = O(x log x) ทฤษฎีบท 2.3 ...............(2)
พิจารณา 3x2 จะได้ว่า 3x2 = O(x2) ...............(3)
...............(4)
เพราะฉะน้ัน จาก (3) และ (4) จะได้ว่า f(x) = (x + 1) log(x2 + 1) + 3x2 = O(max(x log x, x2)) = O(x2)
โดยอ าศัยท ฤษฎีบท 2.2