ใบงาน อัลกอริทึมและความซับซ้อน พร้อมเฉลย
ใบงาน อัลกอริทึมและความซับซ้อน ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้
สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก
ชื่อ: ____________________ วันที่: ____________
1.ง่าย
เวลาทำงานของอัลกอริทึมเป็น O(n) การเติบโตแบบนี้เรียกว่าอะไร
- Aลอการิทึม
- Bกำลังสอง
- Cเชิงเส้น
- Dคงที่
2.ง่าย
อัลกอริทึมกำลังเดรัจฉาน (brute force) คืออะไร
- Aอัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
- Bอัลกอริทึมที่ใช้การเรียกซ้ำเสมอ
- Cอัลกอริทึมที่ทำงานบนหลายตัวประมวลผล
- Dอัลกอริทึมที่เดาคำตอบแบบสุ่ม
3.ง่าย
ถ้าการดำเนินการหนึ่งทำงานในเวลา O(1) หมายความว่าอย่างไร
- Aเวลาทำงานไม่เพิ่มตามขนาดอินพุต
- Bใช้เวลาหนึ่งวินาทีพอดีเสมอ
- Cประมวลผลหนึ่งสมาชิกต่อวินาทีของเวลาทำงานพอดี
- Dรันได้เพียงครั้งเดียว
4.ปานกลาง
การเรียกซ้ำของ merge sort สำหรับอาร์เรย์ n สมาชิกมีกี่ระดับ
- Aประมาณ log₂ n
- Bประมาณ n / 2
- Cประมาณ n
- Dประมาณ √n
5.ปานกลาง
ขอบเขตล่างของการเรียงลำดับแบบเปรียบเทียบในกรณีเลวร้ายที่สุดคือ
- AΩ(log n)
- BΩ(n²)
- CΩ(n log n)
- DΩ(n)
6.ปานกลาง
เหตุใดรูทีนการเรียงลำดับในไลบรารีจำนวนมากจึงเปลี่ยนไปใช้ insertion sort กับอาร์เรย์ย่อยที่เล็กมาก
- AInsertion sort ใช้หน่วยความจำน้อยกว่าอัลกอริทึมการเรียงลำดับอื่นทุกตัวกับอินพุตใหญ่
- Bอัลกอริทึมแบบเรียกซ้ำจัดการอาร์เรย์ที่เล็กกว่า 10 สมาชิกไม่ได้
- CInsertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- DInsertion sort เป็น O(n log n) ในกรณีเลวร้ายที่สุด
7.ยาก
Insertion sort ทำงานใน O(n) บนอินพุตที่เรียงแล้ว สิ่งนี้ขัดกับขอบเขตล่าง Ω(n log n) ของการเรียงแบบเปรียบเทียบหรือไม่
- Aขัด ดังนั้นขอบเขตล่างจึงผิด
- Bไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
- Cไม่ขัด เพราะ insertion sort ไม่ใช่การเรียงแบบเปรียบเทียบ
- Dขัด แต่เฉพาะอาร์เรย์ที่สั้นกว่า 100
8.ยาก
ข้อใดเกี่ยวกับสัญกรณ์ little-o ถูกต้อง
- An² = o(n)
- Bn = o(n²) แต่ n ไม่ใช่ o(n)
- C2n = o(n) เพราะ 2n เติบโตช้า
- Dn = o(n) เพราะทุกฟังก์ชันเป็น little-o ของตัวมันเอง
เฉลย
- 1. C · เชิงเส้น
- 2. A · อัลกอริทึมที่ลองคำตอบผู้สมัครที่เป็นไปได้ทั้งหมด
- 3. A · เวลาทำงานไม่เพิ่มตามขนาดอินพุต
- 4. A · ประมาณ log₂ n
- 5. C · Ω(n log n)
- 6. C · Insertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- 7. B · ไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
- 8. B · n = o(n²) แต่ n ไม่ใช่ o(n)
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com