1.ง่าย
อัลกอริทึมการเรียงลำดับใดสลับสมาชิกที่อยู่ติดกันซึ่งเรียงผิดลำดับซ้ำ ๆ
- Aการเรียงแบบฮีป (heap sort)
- Bการเรียงแบบเร็ว (quicksort)
- Cการเรียงแบบฟอง (bubble sort)
- Dการเรียงแบบผสาน (merge sort)
2.ง่าย
อัลกอริทึมกำลังเดรัจฉาน (brute force) คืออะไร
- Aอัลกอริทึมที่ทำงานบนหลายตัวประมวลผล
- Bอัลกอริทึมที่เดาคำตอบแบบสุ่ม
- Cอัลกอริทึมที่ใช้การเรียกซ้ำเสมอ
- Dอัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
3.ง่าย
อัลกอริทึมที่มีลูปซ้อนกันสองชั้น แต่ละชั้นทำงาน n รอบ โดยทั่วไปมีความซับซ้อนเท่าใด
- AO(log n)
- BO(n²)
- CO(2n)
- DO(n)
4.ปานกลาง
การวิเคราะห์แบบกระจายต้นทุน (amortised analysis) วัดสิ่งใด
- Aต้นทุนคาดหมายเหนืออินพุตสุ่ม
- Bต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
- Cต้นทุนของอัลกอริทึมบนอินพุตที่ดีที่สุด
- Dต้นทุนของการดำเนินการเดียวที่แพงที่สุดในลำดับการดำเนินการ
5.ปานกลาง
เหตุใดจึงมักละฐานของลอการิทึมใน Big O เช่น O(log n)
- Aฐานมีความสำคัญเฉพาะเมื่อ n น้อย
- Bลอการิทึมทั้งหมดในวิทยาการคอมพิวเตอร์มีฐาน 10 จึงไม่ต้องระบุ
- Cลอการิทึมที่ฐานต่างกันต่างกันเพียงตัวคูณคงที่
- Dลอการิทึมถูกปัดเป็นจำนวนเต็มเสมอ
6.ปานกลาง
อัลกอริทึมใดหาเส้นทางสั้นที่สุดจากต้นทางหนึ่งในกราฟที่น้ำหนักเส้นเชื่อมไม่เป็นลบ
- Aอัลกอริทึมของ Kruskal
- Bอัลกอริทึมของ Dijkstra
- Cต้องใช้ Bellman–Ford ในทุกกรณี
- Dการค้นหาในแนวลึก
7.ยาก
เวลาทำงานของอัลกอริทึมของ Dijkstra ที่ใช้ฮีปไบนารีบนกราฟที่มี V จุดยอดและ E เส้นเชื่อมคือเท่าใด
- AO(V × E)
- BO((V + E) log V)
- CO(V + E)
- DO(V³)
8.ยาก
ปัญหา 0/1 knapsack ที่แก้ด้วยการโปรแกรมพลวัตใช้เวลา O(nW) เหตุใดจึงเรียกว่าเวลาแบบกึ่งพหุนาม (pseudo-polynomial)
- Aเพราะใช้ได้เฉพาะ W = 0
- Bเพราะ n มีค่าน้อยเสมอ
- CW เป็นตัวเลข เวลาจึงเป็นเอกซ์โพเนนเชียลเมื่อเทียบกับจำนวนบิตที่ใช้เขียน W
- Dเพราะอัลกอริทึมเป็นแบบสุ่มและเวลาทำงานแปรผันไปตามอินพุตแต่ละครั้ง
เฉลย
- 1. C · การเรียงแบบฟอง (bubble sort)
- 2. D · อัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
- 3. B · O(n²)
- 4. B · ต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
- 5. C · ลอการิทึมที่ฐานต่างกันต่างกันเพียงตัวคูณคงที่
- 6. B · อัลกอริทึมของ Dijkstra
- 7. B · O((V + E) log V)
- 8. C · W เป็นตัวเลข เวลาจึงเป็นเอกซ์โพเนนเชียลเมื่อเทียบกับจำนวนบิตที่ใช้เขียน W
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com