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

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

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

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

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

1.ง่าย

เวลาทำงานของอัลกอริทึมเป็น O(n) การเติบโตแบบนี้เรียกว่าอะไร

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

อัลกอริทึมกำลังเดรัจฉาน (brute force) คืออะไร

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

ถ้าการดำเนินการหนึ่งทำงานในเวลา O(1) หมายความว่าอย่างไร

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

การเรียกซ้ำของ merge sort สำหรับอาร์เรย์ n สมาชิกมีกี่ระดับ

  1. Aประมาณ log₂ n
  2. Bประมาณ n / 2
  3. Cประมาณ n
  4. Dประมาณ √n
5.ปานกลาง

ขอบเขตล่างของการเรียงลำดับแบบเปรียบเทียบในกรณีเลวร้ายที่สุดคือ

  1. AΩ(log n)
  2. BΩ(n²)
  3. CΩ(n log n)
  4. DΩ(n)
6.ปานกลาง

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

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

Insertion sort ทำงานใน O(n) บนอินพุตที่เรียงแล้ว สิ่งนี้ขัดกับขอบเขตล่าง Ω(n log n) ของการเรียงแบบเปรียบเทียบหรือไม่

  1. Aขัด ดังนั้นขอบเขตล่างจึงผิด
  2. Bไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
  3. Cไม่ขัด เพราะ insertion sort ไม่ใช่การเรียงแบบเปรียบเทียบ
  4. Dขัด แต่เฉพาะอาร์เรย์ที่สั้นกว่า 100
8.ยาก

ข้อใดเกี่ยวกับสัญกรณ์ little-o ถูกต้อง

  1. An² = o(n)
  2. Bn = o(n²) แต่ n ไม่ใช่ o(n)
  3. C2n = o(n) เพราะ 2n เติบโตช้า
  4. Dn = o(n) เพราะทุกฟังก์ชันเป็น little-o ของตัวมันเอง

เฉลย

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

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