Page 32 - โครงสร้างข้อมูลและขั้นตอนวิธี
P. 32
2-22 โครงสร้างข้อมูลและขั้นตอนวิธี
ตัวอยา่ งท ี่ 2.15 จงเรียงล �ำดับอัตราก ารเติบโตของฟังก์ชันต่อไปนี้จากช ้าไปเร็ว
5n n 45 log n
วธิ ที �ำ
พิจารณาแ ต่ละฟ ังก์ชัน จะเห็นว ่า 45 เป็นค ่าค งตัว แสดงว ่าเป็นฟ ังก์ชันค ่าค งตัว ซึ่งม ีอ ัตราก ารเติบโตเป็นศ ูนย์
จะเติบโตช้าที่สุด ส่วน n และ log n ย่อมโตช้ากว่า 5n ดังน้ัน เหลือการพิจารณาเปรียบเทียบว่า n กับ
log n ฟังก์ชันไหนโตเร็วกว ่ากัน
ซึ่ง n มีค่าเท่ากับ n0.5 จึงเปรียบเทียบ n0.5 กับ log n จะเห็นว่าทั้งสองฟังก์ชันมีค่ามากกว่าศูนย์ ดังนั้น
เม่ือย กก�ำลังสองท ั้งสองฟ ังก์ชัน ความส ัมพันธ์ระหว่างท ้ังสองฟ ังก์ชันไม่เปล่ียนแปลง นั่นคือ มาพิจารณาเปรียบเทียบ
n กับ log2 n แทน แล้วพ บว่า n โตเร็วก ว่า log2 n ดังนั้น n0.5 จึงโตเร็วกว่า log n น่ันเอง (เช่นเดียวก ับท่ีก ล่าวมาแ ล้ว
ก่อนหน้าน ้ี)
เพราะฉ ะนั้นเรียงล �ำดับอ ัตราก ารเติบโตของฟังก์ชันจากช้าไปเร็วได้ด ังนี้
ข้อสังเกต ถ้าป ระมาณเป็นบ๊ิกโอจะได้ว ่า 45 log n n 5n
5n เป็น O(n) 45 เป็น O(1)
n เป็น O( n ) log n เป็น O(log n)
กจิ กรรม 2.1.3
1. ก�ำ หนดให้ f(x) = 6x3 – x + 8 และ g(x) = (x2 + 3)(x + 1) จงหาว ่าฟ ังกช์ นั ไหนโตเรว็ กว่ากัน
2. ก�ำ หนดให้ f(n) = (2n + 1)log n และ g(n) = 4n2 + 2n จงหาว า่ ฟงั ก์ชนั ไหนโตเร็วกว่าก ัน
3. กำ�หนดให้ f(n) = 5n2 + 2 และ g(n) = 25 + n จงหาวา่ ฟ ังกช์ ันไหนโตเรว็ ก วา่ กนั
4. กำ�หนดให้ f(x) = 3x – 1 และ g(x) = 5x3 + 1 จงห าว า่ ฟงั กช์ ันไหนโตเร็วกว่าก ัน
5. กำ�หนดให้ f(n) = n! และ g(n) = 5n จงห าว่าฟ ังก์ชันไหนโตเร็วกวา่ กนั
6. กำ�หนดให้ f(n) = n!log n และ g(n) = n log(n!) จงหาว า่ ฟ ังก์ชันไหนโตเรว็ ก วา่ กนั
7. จงบ อกสญั ลักษณ์บ ิก๊ โอของฟงั ก์ชันต อ่ ไปนี้ พร้อมทั้งระบุวา่ ฟงั กช์ ันไหนโตเร็วกว่ากัน
7.1 ฟงั กช์ ันค ่าค งตวั กบั ฟังกช์ นั ลอการธิ มึ
7.2 ฟังก์ชันเชิงเสน้ กบั ฟงั กช์ นั ล อการิธมึ
7.3 ฟงั ก์ชันลอ็ กสแควร์ กบั ฟงั ก์ชันก �ำ ลงั สอง
7.4 ฟังก์ชนั ล อการ ิธมึ กบั ฟังกช์ นั เอ็กซโ์ พเนนเชียล
7.5 ฟงั ก์ชันก ำ�ลังสิบ กบั ฟังก์ชนั เอ็กซโ์ พเนนเชียล
8. จงเรยี งล�ำ ดับอตั ราการเติบโตของฟงั กช์ ันต อ่ ไปน ี้จากช้าไปเร็ว
n n2 + log n log n n! 3n
9. จงเรยี งลำ�ดับอตั ราการเติบโตของฟ ังกช์ นั ตอ่ ไปนี้จากเรว็ ไปช า้
n2 n! log n 26 n log n 4n5