ใบงาน อัลกอริทึมและความซับซ้อน พร้อมเฉลย

ใบงาน อัลกอริทึมและความซับซ้อน ฟรีสำหรับพิมพ์: 8 ข้อ ตั้งแต่ระดับง่ายถึงระดับข้อสอบจริง พร้อมเฉลย พิมพ์หรือบันทึกเป็น PDF ได้

ใบงานใหม่ฝึกออนไลน์พร้อมคำใบ้

สำหรับผู้สอน: พิมพ์ ทำสำเนา และใช้ในชั้นเรียนได้ฟรี ใบงานใหม่แต่ละชุดมีค่าตัวเลขใหม่และเฉลยของตัวเอง หากใส่ลิงก์ไปยัง ExamProblems ในหน้ารายวิชาของคุณ เราจะขอบคุณมาก

ชื่อ: ____________________   วันที่: ____________

1.ง่าย

ข้อใดเติบโตช้าที่สุดเมื่อ n มีค่ามาก

  1. AO(n²)
  2. BO(n)
  3. CO(log n)
  4. DO(n log n)
2.ง่าย

เวลาทำงานในกรณีเลวร้ายที่สุดของอัลกอริทึมอธิบายสิ่งใด

  1. Aเวลาที่ใช้บนคอมพิวเตอร์ที่ช้า
  2. Bเวลามากที่สุดที่ใช้ตลอดทุกอินพุตขนาด n
  3. Cเวลาคาดหมายที่ใช้กับอินพุตสุ่มขนาด n
  4. Dเวลาที่ใช้กับอินพุตที่เล็กที่สุด
3.ง่าย

การเข้าถึงสมาชิกในอาร์เรย์ด้วยดัชนีใช้เวลา

  1. AO(1)
  2. BO(n)
  3. CO(log n)
  4. DO(n²)
4.ปานกลาง

เหตุใดรูทีนการเรียงลำดับในไลบรารีจำนวนมากจึงเปลี่ยนไปใช้ insertion sort กับอาร์เรย์ย่อยที่เล็กมาก

  1. AInsertion sort เป็น O(n log n) ในกรณีเลวร้ายที่สุด
  2. BInsertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
  3. Cอัลกอริทึมแบบเรียกซ้ำจัดการอาร์เรย์ที่เล็กกว่า 10 สมาชิกไม่ได้
  4. DInsertion sort ใช้หน่วยความจำน้อยกว่าอัลกอริทึมการเรียงลำดับอื่นทุกตัวกับอินพุตใหญ่
5.ปานกลาง

การวิเคราะห์แบบกระจายต้นทุน (amortised analysis) วัดสิ่งใด

  1. Aต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
  2. Bต้นทุนคาดหมายเหนืออินพุตสุ่ม
  3. Cต้นทุนของการดำเนินการเดียวที่แพงที่สุดในลำดับการดำเนินการ
  4. Dต้นทุนของอัลกอริทึมบนอินพุตที่ดีที่สุด
6.ปานกลาง

ความซับซ้อนเชิงเวลาของฟีโบนักชีแบบเรียกซ้ำตรง ๆ (fib(n) = fib(n−1) + fib(n−2)) คือ

  1. Aคงที่
  2. Bลอการิทึม
  3. Cเอกซ์โพเนนเชียล
  4. Dเชิงเส้น
7.ยาก

เหตุใดการค้นหาเฉลี่ยในตารางแฮชจึงเป็น O(1) แต่กรณีเลวร้ายที่สุดเป็น O(n)

  1. Aอาร์เรย์เข้าถึงใน O(n)
  2. Bต้องเรียงคีย์ก่อน
  3. Cคีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
  4. Dฟังก์ชันแฮชช้า
8.ยาก

ปัญหาการหยุด (halting problem) แสดงว่า

  1. Aบางโปรแกรมทำงานเร็วขึ้นบนคอมพิวเตอร์ที่เร็วกว่า การหยุดจึงขึ้นอยู่กับฮาร์ดแวร์
  2. Bไม่มีอัลกอริทึมใดตัดสินได้สำหรับทุกโปรแกรมและอินพุตว่าโปรแกรมจะหยุดหรือไม่
  3. Cควรหลีกเลี่ยงลูป
  4. Dทุกโปรแกรมจะหยุดในที่สุด

เฉลย

  1. 1. C · O(log n)
  2. 2. B · เวลามากที่สุดที่ใช้ตลอดทุกอินพุตขนาด n
  3. 3. A · O(1)
  4. 4. B · Insertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
  5. 5. A · ต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
  6. 6. C · เอกซ์โพเนนเชียล
  7. 7. C · คีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
  8. 8. B · ไม่มีอัลกอริทึมใดตัดสินได้สำหรับทุกโปรแกรมและอินพุตว่าโปรแกรมจะหยุดหรือไม่

เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com