1.ง่าย
สมาชิกของอาร์เรย์ถูกเก็บในหน่วยความจำอย่างไร
- Aในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- Bในตำแหน่งสุ่มที่เลือกด้วยแฮช
- Cในต้นไม้ของหน้าหน่วยความจำ
- Dกระจัดกระจาย เชื่อมด้วยตัวชี้
2.ง่าย
การดำเนินการของคิวที่เอาสมาชิกด้านหน้าออกเรียกว่าอะไร
- AEnqueue
- BDequeue
- CPush
- DInsert
3.ง่าย
รากของต้นไม้ (root) คืออะไร
- Aโหนดบนสุดที่ไม่มีโหนดแม่
- Bโหนดที่มีค่ามากที่สุด
- Cโหนดใดก็ได้ตรงกลาง
- Dโหนดที่ไม่มีโหนดลูก
4.ปานกลาง
ตารางแฮชขนาด 7 ใช้ h(k) = k mod 7 และ linear probing หลังแทรก 10 แล้ว 17 ถูกเก็บที่ใด
- Aดัชนี 6
- Bดัชนี 4
- Cดัชนี 0
- Dดัชนี 3
5.ปานกลาง
extract-min ใน min-heap ทวิภาคทำงานอย่างไร
- Aค้นหาใบทั้งหมดเพื่อหาค่าต่ำสุดใหม่
- Bลบสมาชิกสุดท้ายของอาร์เรย์
- Cลบรากและเลื่อนสมาชิกทั้งหมดไปทางซ้ายหนึ่งตำแหน่ง
- Dย้ายสมาชิกสุดท้ายไปที่รากและเลื่อนลง (sift down)
6.ปานกลาง
วิธีแก้การชนกันแบบใดเก็บคีย์ที่ชนกันไว้ในลิสต์ที่ถังเดียวกัน
- Aการตรวจสอบกำลังสอง (quadratic probing)
- Bการแฮชซ้อน (double hashing)
- Cการตรวจสอบเชิงเส้น (linear probing)
- Dการเชื่อมโซ่แยก (separate chaining)
7.ยาก
โครงสร้าง union-find (เซตไม่เชื่อมกัน) ที่ใช้ union by rank และ path compression มีต้นทุนกระจายต่อการดำเนินการเป็น
- AO(α(n)) ซึ่งเป็นฟังก์ชันผกผันของอัคเคอร์มันน์ ที่แทบเป็นค่าคงที่ในทางปฏิบัติ
- BO(log n) พอดี
- CO(n²)
- DO(n)
8.ยาก
สำหรับแต่ละสมาชิกของอาร์เรย์ คุณต้องการสมาชิกที่ใหญ่กว่าถัดไปทางขวา ในเวลารวม O(n) โครงสร้างใดช่วยได้
- Aคิวที่เก็บทุกคู่ของสมาชิก
- Bตารางแฮชของสมาชิกทั้งหมด
- Cสแตกที่เก็บสมาชิกที่รอคำตอบ
- Dbinary search tree ที่สร้างใหม่สำหรับแต่ละสมาชิก
เฉลย
- 1. A · ในบล็อกต่อเนื่องเดียว ต่อกันทีละตัว
- 2. B · Dequeue
- 3. A · โหนดบนสุดที่ไม่มีโหนดแม่
- 4. B · ดัชนี 4
- 5. D · ย้ายสมาชิกสุดท้ายไปที่รากและเลื่อนลง (sift down)
- 6. D · การเชื่อมโซ่แยก (separate chaining)
- 7. A · O(α(n)) ซึ่งเป็นฟังก์ชันผกผันของอัคเคอร์มันน์ ที่แทบเป็นค่าคงที่ในทางปฏิบัติ
- 8. C · สแตกที่เก็บสมาชิกที่รอคำตอบ
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com