1.ง่าย
counting sort สำหรับจำนวนเต็ม n ตัวในช่วง 0 ถึง k ใช้เวลาเท่าใด
- AO(n log n)
- BO(n²)
- CO(k log n)
- DO(n + k)
2.ง่าย
กรณีฐานของฟังก์ชันเรียกซ้ำคืออะไร
- Aกรณีที่ตอบได้โดยตรงโดยไม่ต้องเรียกซ้ำอีก
- Bการเรียกที่ใช้หน่วยความจำมากที่สุด
- Cกรณีที่อินพุตใหญ่ที่สุด ซึ่งถูกจัดการก่อนการเรียกซ้ำใด ๆ
- Dบรรทัดแรกของฟังก์ชัน
3.ง่าย
selection sort ทำงานอย่างไร
- Aหาค่าน้อยที่สุดของส่วนที่ยังไม่เรียงซ้ำ ๆ แล้วสลับไปไว้ข้างหน้า
- Bแทรกแต่ละสมาชิกเข้าส่วนที่เรียงแล้วซึ่งขยายขึ้นโดยการเลื่อน
- Cแบ่งอาร์เรย์เป็นสองครึ่งแล้วผสานกัน
- Dสลับสมาชิกข้างเคียงที่เรียงผิดลำดับซ้ำ ๆ
4.ปานกลาง
อัลกอริทึมการเรียงลำดับใดเป็นแบบเสถียร (stable)
- ASelection sort (แบบทั่วไป)
- BHeap sort
- CMerge sort
- DQuicksort (แบบทำในที่เดิมทั่วไป)
5.ปานกลาง
ความซับซ้อนเชิงเวลาของอัลกอริทึม Bellman–Ford บนกราฟที่มี V จุดยอดและ E เส้นเชื่อมคือเท่าใด
- AO(V³ × E)
- BO(E log V)
- CO(V + E)
- DO(V × E)
6.ปานกลาง
ความสัมพันธ์เวียนเกิด T(n) = T(n − 1) + O(n) มีผลเฉลยเป็นเท่าใด
- AO(n²)
- BO(2ⁿ)
- CO(n log n)
- DO(n)
7.ยาก
นิยามใดของคลาส P ถูกต้อง
- Aปัญหาที่ตรวจคำตอบได้แต่ไม่เคยหาคำตอบได้ในเวลาพหุนาม
- Bปัญหาที่แก้แบบขนานได้
- Cปัญหาที่ต้องใช้เวลาเอกซ์โพเนนเชียลบนคอมพิวเตอร์ทุกเครื่อง
- Dปัญหาการตัดสินใจที่แก้ได้ด้วยอัลกอริทึมแบบกำหนดแน่นอนในเวลาพหุนาม
8.ยาก
เทคนิคใดให้เวลาทำงานคาดหมาย O(n log n) ของ quicksort กับอินพุตใด ๆ
- Aเลือกตัวหลักแบบสุ่มสม่ำเสมอ
- Bเรียงอินพุตก่อนรัน quicksort
- Cเลือกสมาชิกตัวแรกเสมอ
- Dเรียกซ้ำเฉพาะฝั่งซ้าย
เฉลย
- 1. D · O(n + k)
- 2. A · กรณีที่ตอบได้โดยตรงโดยไม่ต้องเรียกซ้ำอีก
- 3. A · หาค่าน้อยที่สุดของส่วนที่ยังไม่เรียงซ้ำ ๆ แล้วสลับไปไว้ข้างหน้า
- 4. C · Merge sort
- 5. D · O(V × E)
- 6. A · O(n²)
- 7. D · ปัญหาการตัดสินใจที่แก้ได้ด้วยอัลกอริทึมแบบกำหนดแน่นอนในเวลาพหุนาม
- 8. A · เลือกตัวหลักแบบสุ่มสม่ำเสมอ
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com