ใบงาน อัลกอริทึมและความซับซ้อน พร้อมเฉลย
ใบงาน อัลกอริทึมและความซับซ้อน ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้
สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก
ชื่อ: ____________________ วันที่: ____________
1.ง่าย
ความซับซ้อนเชิงพื้นที่ (space complexity) วัดสิ่งใด
- Aปริมาณหน่วยความจำที่อัลกอริทึมต้องใช้เมื่ออินพุตใหญ่ขึ้น
- Bพื้นที่ดิสก์ของไฟล์โปรแกรมหลังจากคอมไพล์แล้ว
- Cจำนวนบรรทัดของโค้ด
- Dขนาดทางกายภาพของคอมพิวเตอร์
2.ง่าย
ความซับซ้อนเชิงเวลาในกรณีดีที่สุดของ insertion sort บนอาร์เรย์ที่เรียงแล้วคือเท่าใด
- AO(n log n)
- BO(n)
- CO(1)
- DO(n²)
3.ง่าย
เวลาทำงานในข้อใดเป็นพหุนาม
- AO(2ⁿ)
- BO(n!)
- CO(nⁿ)
- DO(n³)
4.ปานกลาง
คุณเรียงอาร์เรย์ n สมาชิกหนึ่งครั้ง แล้วตอบคำถามการเป็นสมาชิก k ข้อด้วยการค้นหาแบบทวิภาค ต้นทุนรวมเท่าใด
- AO(n + k)
- BO(n log n + k log n)
- CO(k n log n)
- DO(nk)
5.ปานกลาง
อัลกอริทึมการเรียงลำดับใดเป็นแบบเสถียร (stable)
- AHeap sort
- BQuicksort (แบบทำในที่เดิมทั่วไป)
- CSelection sort (แบบทั่วไป)
- DMerge sort
6.ปานกลาง
เหตุใดรูทีนการเรียงลำดับในไลบรารีจำนวนมากจึงเปลี่ยนไปใช้ insertion sort กับอาร์เรย์ย่อยที่เล็กมาก
- AInsertion sort เป็น O(n log n) ในกรณีเลวร้ายที่สุด
- BInsertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- CInsertion sort ใช้หน่วยความจำน้อยกว่าอัลกอริทึมการเรียงลำดับอื่นทุกตัวกับอินพุตใหญ่
- Dอัลกอริทึมแบบเรียกซ้ำจัดการอาร์เรย์ที่เล็กกว่า 10 สมาชิกไม่ได้
7.ยาก
ปัญหาพนักงานขายเดินทางถูกจัดประเภทอย่างไร
- Aแบบการตัดสินใจอยู่ใน P แต่แบบหาค่าเหมาะที่สุดเป็น NP-complete
- Bอยู่ใน P เพราะอัลกอริทึมของ Dijkstra แก้ได้โดยเยี่ยมชมทุกเมืองหนึ่งครั้ง
- Cตัดสินไม่ได้
- Dแบบการตัดสินใจเป็น NP-complete และแบบหาค่าเหมาะที่สุดเป็น NP-hard
8.ยาก
22n อยู่ใน O(2ⁿ) หรือไม่
- Aไม่ เพราะ 22n เติบโตช้ากว่า 2ⁿ
- Bใช่ เพราะตัวคูณคงที่ในเลขชี้กำลังถูกละไว้เสมอใน Big O
- Cใช่ เพราะทั้งสองเป็นเอกซ์โพเนนเชียล
- Dไม่ เพราะ 22n = 4ⁿ และ 4ⁿ / 2ⁿ = 2ⁿ เติบโตไม่มีขอบเขต
เฉลย
- 1. A · ปริมาณหน่วยความจำที่อัลกอริทึมต้องใช้เมื่ออินพุตใหญ่ขึ้น
- 2. B · O(n)
- 3. D · O(n³)
- 4. B · O(n log n + k log n)
- 5. D · Merge sort
- 6. B · Insertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- 7. D · แบบการตัดสินใจเป็น NP-complete และแบบหาค่าเหมาะที่สุดเป็น NP-hard
- 8. D · ไม่ เพราะ 22n = 4ⁿ และ 4ⁿ / 2ⁿ = 2ⁿ เติบโตไม่มีขอบเขต
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com