1.ง่าย
การเข้าถึงสมาชิกในอาร์เรย์ด้วยดัชนีใช้เวลา
- AO(n²)
- BO(1)
- CO(log n)
- DO(n)
2.ง่าย
อัลกอริทึม O(n) ใช้เวลา 3 วินาทีเมื่อ n = 1 ล้าน เมื่อ n = 2 ล้านจะใช้เวลาประมาณเท่าใด
- A9 วินาที
- B6 วินาที
- C12 วินาที
- D3 วินาที
3.ง่าย
memoisation คืออะไร
- Aการเขียนคอมเมนต์ข้างทุกบรรทัดของโค้ด
- Bการแปลงการเรียกซ้ำเป็นลูปที่เทียบเท่ากันโดยอัตโนมัติ จึงไม่ต้องใช้สแต็กการเรียก
- Cการคืนหน่วยความจำหลังฟังก์ชันทำงานเสร็จ
- Dการเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
4.ปานกลาง
อัลกอริทึมการเรียงลำดับใดเป็นแบบเสถียร (stable)
- ASelection sort (แบบทั่วไป)
- BQuicksort (แบบทำในที่เดิมทั่วไป)
- CMerge sort
- DHeap sort
5.ปานกลาง
การเรียกซ้ำของ merge sort สำหรับอาร์เรย์ n สมาชิกมีกี่ระดับ
- Aประมาณ n / 2
- Bประมาณ n
- Cประมาณ log₂ n
- Dประมาณ √n
6.ปานกลาง
ความสัมพันธ์เวียนเกิด T(n) = 2T(n/2) + O(n) มีผลเฉลยเป็น
- AO(log n)
- BO(n)
- CO(n log n)
- DO(n²)
7.ยาก
22n อยู่ใน O(2ⁿ) หรือไม่
- Aไม่ เพราะ 22n เติบโตช้ากว่า 2ⁿ
- Bใช่ เพราะตัวคูณคงที่ในเลขชี้กำลังถูกละไว้เสมอใน Big O
- Cใช่ เพราะทั้งสองเป็นเอกซ์โพเนนเชียล
- Dไม่ เพราะ 22n = 4ⁿ และ 4ⁿ / 2ⁿ = 2ⁿ เติบโตไม่มีขอบเขต
8.ยาก
ปัญหาหนึ่งเป็น NP-complete ถ้ามัน
- Aอยู่นอก NP แต่ยากกว่าทุกปัญหา NP เช่น ปัญหาการหยุด
- Bอยู่ใน NP และทุกปัญหา NP ลดรูปมาเป็นมันได้ในเวลาพหุนาม
- Cแก้ไม่ได้เลย
- Dแก้ได้ในเวลาพหุนาม
เฉลย
- 1. B · O(1)
- 2. B · 6 วินาที
- 3. D · การเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
- 4. C · Merge sort
- 5. C · ประมาณ log₂ n
- 6. C · O(n log n)
- 7. D · ไม่ เพราะ 22n = 4ⁿ และ 4ⁿ / 2ⁿ = 2ⁿ เติบโตไม่มีขอบเขต
- 8. B · อยู่ใน NP และทุกปัญหา NP ลดรูปมาเป็นมันได้ในเวลาพหุนาม
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com