1.ง่าย
สัญกรณ์ใดใช้อธิบายขอบเขตบนของอัตราการเติบโต
- ABig Theta
- BLittle omega
- CBig Omega
- DBig O
2.ง่าย
อัลกอริทึมที่มีลูปซ้อนกันสองชั้น แต่ละชั้นทำงาน n รอบ โดยทั่วไปมีความซับซ้อนเท่าใด
- AO(log n)
- BO(n)
- CO(n²)
- DO(2n)
3.ง่าย
memoisation คืออะไร
- Aการเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
- Bการคืนหน่วยความจำหลังฟังก์ชันทำงานเสร็จ
- Cการแปลงการเรียกซ้ำเป็นลูปที่เทียบเท่ากันโดยอัตโนมัติ จึงไม่ต้องใช้สแต็กการเรียก
- Dการเขียนคอมเมนต์ข้างทุกบรรทัดของโค้ด
4.ปานกลาง
ความซับซ้อนเชิงเวลาของอัลกอริทึมการโปรแกรมพลวัตมาตรฐานสำหรับสายอักขระย่อยร่วมที่ยาวที่สุด (LCS) ของสายอักขระที่ยาว m และ n คือเท่าใด
- AO(mn)
- BO(m + n)
- CO(mn log n)
- DO(2m+n)
5.ปานกลาง
ความสัมพันธ์เวียนเกิด T(n) = T(n/2) + O(1) มีผลเฉลยเป็นเท่าใด
- AO(1)
- BO(n log n)
- CO(n)
- DO(log n)
6.ปานกลาง
อัลกอริทึมใดหาเส้นทางสั้นที่สุดจากต้นทางหนึ่งในกราฟที่น้ำหนักเส้นเชื่อมไม่เป็นลบ
- Aต้องใช้ Bellman–Ford ในทุกกรณี
- Bอัลกอริทึมของ Dijkstra
- Cการค้นหาในแนวลึก
- Dอัลกอริทึมของ Kruskal
7.ยาก
นิยามใดของคลาส NP ถูกต้อง
- Aปัญหาที่แก้ในเวลาพหุนามไม่ได้
- Bปัญหาการตัดสินใจที่คำตอบ "ใช่" ตรวจสอบได้ในเวลาพหุนามเมื่อมีใบรับรอง
- Cปัญหาที่ไม่มีอัลกอริทึมใดแก้ได้
- Dปัญหาที่ไม่ใช่พหุนาม
8.ยาก
ข้อใดเกี่ยวกับ P และ NP ถูกต้อง
- Aได้พิสูจน์แล้วว่า P ≠ NP
- Bปัญหา NP ตรวจสอบอย่างรวดเร็วไม่ได้
- CNP หมายถึง "ไม่ใช่พหุนาม"
- Dทุกปัญหาใน P อยู่ใน NP ด้วย
เฉลย
- 1. D · Big O
- 2. C · O(n²)
- 3. A · การเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
- 4. A · O(mn)
- 5. D · O(log n)
- 6. B · อัลกอริทึมของ Dijkstra
- 7. B · ปัญหาการตัดสินใจที่คำตอบ "ใช่" ตรวจสอบได้ในเวลาพหุนามเมื่อมีใบรับรอง
- 8. D · ทุกปัญหาใน P อยู่ใน NP ด้วย
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com