1.ง่าย
อัลกอริทึมกำลังเดรัจฉาน (brute force) คืออะไร
- Aอัลกอริทึมที่ใช้การเรียกซ้ำเสมอ
- Bอัลกอริทึมที่ทำงานบนหลายตัวประมวลผล
- Cอัลกอริทึมที่เดาคำตอบแบบสุ่ม
- Dอัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
2.ง่าย
การเติบโตแบบ O(2ⁿ) เรียกว่าอะไร
- Aเชิงเส้น
- Bพหุนาม
- Cลอการิทึม
- Dเอกซ์โพเนนเชียล
3.ง่าย
เวลาทำงานในข้อใดเป็นพหุนาม
- AO(nⁿ)
- BO(2ⁿ)
- CO(n³)
- DO(n!)
4.ปานกลาง
การกล่าวว่าอัลกอริทึม O(n²) เป็น O(n³) ด้วย ถูกต้องหรือไม่
- Aถูกต้อง เพราะ Big O เป็นขอบเขตบน และ n² เติบโตไม่เร็วกว่า n³
- Bถูกต้อง แต่เฉพาะเมื่อ n น้อยกว่า 100
- Cไม่ถูก เพราะ n³ น้อยกว่า n² เมื่อ n มาก
- Dไม่ถูก เพราะ Big O ต้องระบุอัตราการเติบโตที่แน่นอนของฟังก์ชันเสมอ
5.ปานกลาง
การเรียกซ้ำของ merge sort สำหรับอาร์เรย์ n สมาชิกมีกี่ระดับ
- Aประมาณ log₂ n
- Bประมาณ n
- Cประมาณ n / 2
- Dประมาณ √n
6.ปานกลาง
คุณเรียงอาร์เรย์ n สมาชิกหนึ่งครั้ง แล้วตอบคำถามการเป็นสมาชิก k ข้อด้วยการค้นหาแบบทวิภาค ต้นทุนรวมเท่าใด
- AO(n log n + k log n)
- BO(nk)
- CO(n + k)
- DO(k n log n)
7.ยาก
Insertion sort ทำงานใน O(n) บนอินพุตที่เรียงแล้ว สิ่งนี้ขัดกับขอบเขตล่าง Ω(n log n) ของการเรียงแบบเปรียบเทียบหรือไม่
- Aไม่ขัด เพราะ insertion sort ไม่ใช่การเรียงแบบเปรียบเทียบ
- Bไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
- Cขัด ดังนั้นขอบเขตล่างจึงผิด
- Dขัด แต่เฉพาะอาร์เรย์ที่สั้นกว่า 100
8.ยาก
การเลือกปลายทั้งสองของทุกเส้นเชื่อมใน maximal matching ให้ผลเป็นเซตครอบคลุมจุดยอด (vertex cover) เซตครอบคลุมนี้ดีเพียงใด
- Aไม่ทราบคุณภาพเมื่อเทียบกับค่าที่เหมาะสมที่สุด
- Bขนาดไม่เกินสองเท่าของเซตครอบคลุมจุดยอดที่เล็กที่สุด
- Cไม่เกิน log n เท่าของค่าต่ำสุด
- Dเป็นเซตครอบคลุมจุดยอดที่เล็กที่สุดเสมอ
เฉลย
- 1. D · อัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
- 2. D · เอกซ์โพเนนเชียล
- 3. C · O(n³)
- 4. A · ถูกต้อง เพราะ Big O เป็นขอบเขตบน และ n² เติบโตไม่เร็วกว่า n³
- 5. A · ประมาณ log₂ n
- 6. A · O(n log n + k log n)
- 7. B · ไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
- 8. B · ขนาดไม่เกินสองเท่าของเซตครอบคลุมจุดยอดที่เล็กที่สุด
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com