1.ง่าย
การดำเนินการใดช้าในอาร์เรย์แต่เร็วที่ส่วนหัวของลิงก์ลิสต์
- Aการแทรกที่จุดเริ่มต้น
- Bการเข้าถึงสมาชิกตัวที่ 5
- Cการอ่านสมาชิกตัวสุดท้ายด้วยดัชนี
- Dการหาความยาวของอาร์เรย์ขนาดคงที่
2.ง่าย
การดำเนินการใดเป็น O(1) สำหรับอาร์เรย์แต่เป็น O(n) สำหรับลิงก์ลิสต์เชิงเดี่ยว
- Aการอ่านสมาชิกตัวแรก
- Bการเข้าถึงสมาชิกที่ดัชนี i
- Cการแทรกที่หัว
- Dการลบสมาชิกหัว
3.ง่าย
ความสูงของต้นไม้มักถูกนิยามว่า
- Aจำนวนใบในต้นไม้
- Bจำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- Cจำนวนลูกของราก
- Dจำนวนโหนดทั้งหมดในต้นไม้ นับทั้งรากและใบทุกใบ
4.ปานกลาง
การตรวจว่ามีเส้นเชื่อม (u, v) หรือไม่ด้วยเมทริกซ์ประชิดใช้เวลาเท่าใด
- AO(V)
- BO(E)
- CO(1)
- DO(log V)
5.ปานกลาง
ในฮีปทวิภาคที่เก็บในอาร์เรย์เริ่มที่ดัชนี 0 แม่ของโหนดที่ดัชนี i อยู่ที่ใด
- Aที่ดัชนี ⌊(i − 1) / 2⌋
- Bที่ดัชนี i − 1
- Cที่ดัชนี 2i + 1
- Dที่ดัชนี ⌊i / 2⌋ + 1
6.ปานกลาง
อัลกอริทึมของ Dijkstra ใช้ชนิดข้อมูลนามธรรมใดเลือกจุดยอดถัดไปที่จะประมวลผล
- Aคิว FIFO
- Bสแตก
- Cคิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- Dเซตที่ไม่มีลำดับ
7.ยาก
ภายใต้การแฮชสม่ำเสมออย่างง่าย เวลาคาดหมายของการค้นหาในตารางแฮชแบบ chaining ที่มี n คีย์และ m ถังคือเท่าใด
- AO(log n)
- BO(1 + α) เมื่อ α = n / m
- CO(n)
- DO(m)
8.ยาก
ข้อได้เปรียบหลักของ skip list เหนือลิงก์ลิสต์ที่เรียงลำดับคืออะไร
- Aการค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ
- Bเก็บคีย์โดยไม่เรียงลำดับ
- Cไม่ใช้หน่วยความจำเพิ่ม
- Dรับประกันการค้นหา O(1) เพราะทุกโหนดเก็บตัวชี้ไปยังทุกโหนดอื่น
เฉลย
- 1. A · การแทรกที่จุดเริ่มต้น
- 2. B · การเข้าถึงสมาชิกที่ดัชนี i
- 3. B · จำนวนเส้นเชื่อมบนเส้นทางที่ยาวที่สุดจากรากไปยังใบ
- 4. C · O(1)
- 5. A · ที่ดัชนี ⌊(i − 1) / 2⌋
- 6. C · คิวลำดับความสำคัญแบบค่าต่ำสุด (min-priority queue)
- 7. B · O(1 + α) เมื่อ α = n / m
- 8. A · การค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com