1.ง่าย
ข้อใดเติบโตช้าที่สุดเมื่อ n มีค่ามาก
- AO(n²)
- BO(n)
- CO(log n)
- DO(n log n)
2.ง่าย
เวลาทำงานในกรณีเลวร้ายที่สุดของอัลกอริทึมอธิบายสิ่งใด
- Aเวลาที่ใช้บนคอมพิวเตอร์ที่ช้า
- Bเวลามากที่สุดที่ใช้ตลอดทุกอินพุตขนาด n
- Cเวลาคาดหมายที่ใช้กับอินพุตสุ่มขนาด n
- Dเวลาที่ใช้กับอินพุตที่เล็กที่สุด
3.ง่าย
การเข้าถึงสมาชิกในอาร์เรย์ด้วยดัชนีใช้เวลา
- AO(1)
- BO(n)
- CO(log n)
- DO(n²)
4.ปานกลาง
เหตุใดรูทีนการเรียงลำดับในไลบรารีจำนวนมากจึงเปลี่ยนไปใช้ insertion sort กับอาร์เรย์ย่อยที่เล็กมาก
- AInsertion sort เป็น O(n log n) ในกรณีเลวร้ายที่สุด
- BInsertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- Cอัลกอริทึมแบบเรียกซ้ำจัดการอาร์เรย์ที่เล็กกว่า 10 สมาชิกไม่ได้
- DInsertion sort ใช้หน่วยความจำน้อยกว่าอัลกอริทึมการเรียงลำดับอื่นทุกตัวกับอินพุตใหญ่
5.ปานกลาง
การวิเคราะห์แบบกระจายต้นทุน (amortised analysis) วัดสิ่งใด
- Aต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
- Bต้นทุนคาดหมายเหนืออินพุตสุ่ม
- Cต้นทุนของการดำเนินการเดียวที่แพงที่สุดในลำดับการดำเนินการ
- Dต้นทุนของอัลกอริทึมบนอินพุตที่ดีที่สุด
6.ปานกลาง
ความซับซ้อนเชิงเวลาของฟีโบนักชีแบบเรียกซ้ำตรง ๆ (fib(n) = fib(n−1) + fib(n−2)) คือ
- Aคงที่
- Bลอการิทึม
- Cเอกซ์โพเนนเชียล
- Dเชิงเส้น
7.ยาก
เหตุใดการค้นหาเฉลี่ยในตารางแฮชจึงเป็น O(1) แต่กรณีเลวร้ายที่สุดเป็น O(n)
- Aอาร์เรย์เข้าถึงใน O(n)
- Bต้องเรียงคีย์ก่อน
- Cคีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
- Dฟังก์ชันแฮชช้า
8.ยาก
ปัญหาการหยุด (halting problem) แสดงว่า
- Aบางโปรแกรมทำงานเร็วขึ้นบนคอมพิวเตอร์ที่เร็วกว่า การหยุดจึงขึ้นอยู่กับฮาร์ดแวร์
- Bไม่มีอัลกอริทึมใดตัดสินได้สำหรับทุกโปรแกรมและอินพุตว่าโปรแกรมจะหยุดหรือไม่
- Cควรหลีกเลี่ยงลูป
- Dทุกโปรแกรมจะหยุดในที่สุด
เฉลย
- 1. C · O(log n)
- 2. B · เวลามากที่สุดที่ใช้ตลอดทุกอินพุตขนาด n
- 3. A · O(1)
- 4. B · Insertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- 5. A · ต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
- 6. C · เอกซ์โพเนนเชียล
- 7. C · คีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
- 8. B · ไม่มีอัลกอริทึมใดตัดสินได้สำหรับทุกโปรแกรมและอินพุตว่าโปรแกรมจะหยุดหรือไม่
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com