1.ง่าย
f(n) = Θ(g(n)) หมายความว่าอย่างไร
- Af เติบโตเร็วกว่า g อย่างเด็ดขาด
- Bf เติบโตในอัตราเดียวกับ g โดยถูกจำกัดทั้งบนและล่างด้วยผลคูณคงที่ของ g
- Cf น้อยกว่า g เสมอทุกค่า n ดังนั้น g เป็นขอบเขตบนของ f แต่ไม่เคยเป็นขอบเขตล่าง
- Df เติบโตช้ากว่า g อย่างเด็ดขาด
2.ง่าย
memoisation คืออะไร
- Aการแปลงการเรียกซ้ำเป็นลูปที่เทียบเท่ากันโดยอัตโนมัติ จึงไม่ต้องใช้สแต็กการเรียก
- Bการเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
- Cการเขียนคอมเมนต์ข้างทุกบรรทัดของโค้ด
- Dการคืนหน่วยความจำหลังฟังก์ชันทำงานเสร็จ
3.ง่าย
merge sort ใช้กลยุทธ์การออกแบบใด
- Aกำลังเดรัจฉาน (brute force)
- Bแบ่งแล้วเอาชนะ (divide and conquer)
- Cการโปรแกรมพลวัต
- Dการเลือกแบบละโมบ
4.ปานกลาง
ความซับซ้อนเชิงเวลาเฉลี่ยแบบกระจายต้นทุน (amortised) ของการต่อท้ายอาร์เรย์พลวัตที่เพิ่มความจุเป็นสองเท่าเมื่อเต็มคือเท่าใด
- AO(log n)
- BO(1)
- CO(n²)
- DO(n)
5.ปานกลาง
การค้นหาในแนวกว้าง (BFS) บนกราฟที่ไม่มีน้ำหนักให้ผลเป็น
- Aต้นไม้ทอดข้ามที่น้อยที่สุด
- Bลำดับทอพอโลยีในทุกกราฟ
- Cเส้นทางสั้นที่สุดในกราฟที่มีเส้นเชื่อมน้ำหนักติดลบ
- Dเส้นทางสั้นที่สุดในแง่จำนวนเส้นเชื่อมจากโหนดเริ่มต้น
6.ปานกลาง
เหตุใดรูทีนการเรียงลำดับในไลบรารีจำนวนมากจึงเปลี่ยนไปใช้ insertion sort กับอาร์เรย์ย่อยที่เล็กมาก
- Aอัลกอริทึมแบบเรียกซ้ำจัดการอาร์เรย์ที่เล็กกว่า 10 สมาชิกไม่ได้
- BInsertion sort ใช้หน่วยความจำน้อยกว่าอัลกอริทึมการเรียงลำดับอื่นทุกตัวกับอินพุตใหญ่
- CInsertion sort เป็น O(n log n) ในกรณีเลวร้ายที่สุด
- DInsertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
7.ยาก
เหตุใดการค้นหาแบบเปรียบเทียบใด ๆ ในอาร์เรย์ที่เรียงแล้วจึงต้องใช้ Ω(log n) การเปรียบเทียบในกรณีเลวร้ายที่สุด
- Aทุกสมาชิกต้องถูกเปรียบเทียบอย่างน้อยหนึ่งครั้ง
- Bการค้นหาแบบทวิภาคเป็นอัลกอริทึมเดียวที่เป็นไปได้ และต้องใช้ log₂ n การเปรียบเทียบ
- Cต้นไม้ตัดสินใจที่มีผลลัพธ์ที่เป็นไปได้ n แบบต้องมีความลึกอย่างน้อย log₂ n
- Dการเปรียบเทียบแต่ละครั้งใช้เวลาแบบลอการิทึม
8.ยาก
จะเกิดอะไรขึ้นถ้ามีผู้พบอัลกอริทึมเวลาพหุนามสำหรับปัญหา NP-complete หนึ่งข้อ
- Aปัญหาการหยุดจะตัดสินได้
- Bอัลกอริทึมเวลาเอกซ์โพเนนเชียลทั้งหมดจะทำงานในเวลาเชิงเส้นทันที
- Cทุกปัญหาใน NP แก้ได้ในเวลาพหุนาม ดังนั้น P = NP
- Dเฉพาะปัญหานั้นปัญหาเดียวที่ย้ายเข้า P
เฉลย
- 1. B · f เติบโตในอัตราเดียวกับ g โดยถูกจำกัดทั้งบนและล่างด้วยผลคูณคงที่ของ g
- 2. B · การเก็บผลลัพธ์ของการเรียกฟังก์ชันเพื่อตอบการเรียกซ้ำจากหน่วยความจำ
- 3. B · แบ่งแล้วเอาชนะ (divide and conquer)
- 4. B · O(1)
- 5. D · เส้นทางสั้นที่สุดในแง่จำนวนเส้นเชื่อมจากโหนดเริ่มต้น
- 6. D · Insertion sort มีภาระเพิ่มน้อยและเร็วกับอินพุตที่เล็กหรือเกือบเรียงแล้ว
- 7. C · ต้นไม้ตัดสินใจที่มีผลลัพธ์ที่เป็นไปได้ n แบบต้องมีความลึกอย่างน้อย log₂ n
- 8. C · ทุกปัญหาใน NP แก้ได้ในเวลาพหุนาม ดังนั้น P = NP
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com