โครงสร้างข้อมูลและอัลกอริทึม: ชุดสรุปเร่งรัด

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 6 ข้อ พร้อมเฉลยละเอียดไว้ท้ายเล่ม

โจทย์ใหม่กลับไปที่รายวิชา

ในหน้าต่างพิมพ์ ให้เลือก “บันทึกเป็น PDF” เพื่อเก็บสำเนาไว้ในอุปกรณ์ของคุณ

1สูตรและวิธีทำ

ทฤษฎีกราฟ

เล็มมาการจับมือ
Σ deg(v) = 2|E|
กราฟบริบูรณ์
|E(Kn)| = n(n − 1)/2, |E(Km,n)| = m·n
กราฟปรกติ
|E| = n·k/2
ต้นไม้และป่า
|E| = n − 1, |E| = n − c
ใบของต้นไม้
L = 2 + Σ (deg(v) − 2) over deg(v) ≥ 3
ออยเลอร์
วงจร: ดีกรีเป็นคู่ทุกจุดยอด; ทางเดิน: มีดีกรีคี่พอดี 2 จุดยอด
วงจรแฮมิลตันใน Kn
(n − 1)!/2
การปรับค่าของไดก์สตรา
d(v) = min(d(v), d(u) + w(u, v))
วอล์กความยาว L
(Mᴸ)ij

วิธีการ

  1. เขียนดีกรีของทุกจุดยอด ผลบวกของดีกรีเท่ากับสองเท่าของจำนวนเส้นเชื่อม
  2. สำหรับโจทย์ออยเลอร์ ให้ตรวจว่ากราฟเชื่อมโยงกัน และนับจุดยอดที่มีดีกรีคี่
  3. สำหรับต้นไม้ ให้ใช้ว่ามี n − 1 เส้นเชื่อม และเล็มมาการจับมือ
  4. สำหรับไดก์สตรา ให้เก็บตารางระยะทางชั่วคราว และยืนยันจุดยอดที่ยังไม่ยืนยันซึ่งมีค่าน้อยที่สุดในแต่ละรอบ
  5. สำหรับต้นไม้ทอดข้ามค่าน้อยที่สุด ให้เรียงเส้นเชื่อมตามน้ำหนักและข้ามทุกเส้นที่ทำให้เกิดวัฏจักร (ครัสคัล) หรือขยายต้นไม้ต้นเดียวจากจุดยอดเริ่มต้น (พริม)

2โจทย์ฝึก

1.อัลกอริทึมและความซับซ้อนปานกลาง

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

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

เหตุใดการค้นหาแบบเปรียบเทียบใด ๆ ในอาร์เรย์ที่เรียงแล้วจึงต้องใช้ Ω(log n) การเปรียบเทียบในกรณีเลวร้ายที่สุด

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

หาคีย์ที่น้อยที่สุดใน binary search tree ได้อย่างไร

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

splay tree ทำอะไรหลังการเข้าถึงแต่ละครั้ง

  1. Aสร้างต้นไม้ใหม่ทั้งหมดให้สมดุล
  2. Bย้ายโหนดที่เข้าถึงไปเป็นใบ
  3. Cหมุนโหนดที่เข้าถึงขึ้นไปที่ราก
  4. Dเปลี่ยนสีโหนดตามเส้นทางการค้นหา
5.ทฤษฎีกราฟปานกลาง
ABCDEวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

กราฟเชื่อมโยงนี้มีวงจรออยเลอร์ ทางเดินออยเลอร์ที่ไม่ใช่วงจร หรือไม่มีทั้งสองอย่าง ให้คลิกคำตอบของคุณ

|V| = 5|E| = 5
  1. 1วงจรออยเลอร์
  2. 2ทางเดินออยเลอร์ ไม่มีวงจร
  3. 3ไม่ใช่ทั้งสองอย่าง
6.ทฤษฎีกราฟยาก
14133891275ABCDEF

จงหาน้ำหนักรวม W ของต้นไม้ทอดข้ามค่าน้อยที่สุดของกราฟถ่วงน้ำหนัก

|V| = 6|E| = 8
W =

3สารละลาย

1.อัลกอริทึมและความซับซ้อน

คำตอบ: D · ต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด

เหตุผลที่เป็นคำตอบนี้

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

คำตอบ

D · ต้นทุนเฉลี่ยต่อหนึ่งการดำเนินการ บนลำดับการดำเนินการที่เลวร้ายที่สุด
2.อัลกอริทึมและความซับซ้อน

คำตอบ: B · ต้นไม้ตัดสินใจที่มีผลลัพธ์ที่เป็นไปได้ n แบบต้องมีความลึกอย่างน้อย log₂ n

เหตุผลที่เป็นคำตอบนี้

การเปรียบเทียบแต่ละครั้งลดเซตความเป็นไปได้ที่เหลือลงอย่างมากที่สุดครึ่งหนึ่ง การแยกแยะ n ตำแหน่งจึงต้องใช้อย่างน้อย log₂ n การเปรียบเทียบ

คำตอบ

B · ต้นไม้ตัดสินใจที่มีผลลัพธ์ที่เป็นไปได้ n แบบต้องมีความลึกอย่างน้อย log₂ n
3.โครงสร้างข้อมูล

คำตอบ: B · ตามลูกซ้ายจากรากจนไม่มีลูกซ้าย

เหตุผลที่เป็นคำตอบนี้

โหนดซ้ายสุดไม่มีคีย์ที่เล็กกว่าในต้นไม้ จึงเป็นค่าต่ำสุด ต้นทุนแปรผันตามความสูง

คำตอบ

B · ตามลูกซ้ายจากรากจนไม่มีลูกซ้าย
4.โครงสร้างข้อมูล

คำตอบ: C · หมุนโหนดที่เข้าถึงขึ้นไปที่ราก

เหตุผลที่เป็นคำตอบนี้

การ splay ย้ายโหนดที่เข้าถึงไปที่รากด้วยการหมุน การดำเนินการหนึ่งครั้งอาจใช้ O(n) แต่ต้นทุนกระจายเป็น O(log n)

คำตอบ

C · หมุนโหนดที่เข้าถึงขึ้นไปที่ราก
5.ทฤษฎีกราฟ

คำตอบ: วงจรออยเลอร์

ออยเลอร์ แฮมิลตัน และต้นไม้: กราฟเชื่อมโยงมีวงจรออยเลอร์ (ผ่านทุกเส้นเชื่อมครั้งเดียวและกลับจุดเริ่มต้น) เมื่อทุกจุดยอดมีดีกรีคู่ และมีทางเดินออยเลอร์ที่ไม่ใช่วงจรเมื่อมีจุดยอดดีกรีคี่พอดีสองจุด ทางเดินนั้นไปจากจุดยอดคี่จุดหนึ่งถึงอีกจุดหนึ่ง วงจรแฮมิลตันผ่านทุกจุดยอดครั้งเดียว Kn มีวงจรแบบนี้ (n − 1)!/2 วงจร ต้นไม้ที่มี n จุดยอดมี n − 1 เส้นเชื่อม และกราฟเชื่อมโยงที่มี m เส้นเชื่อมจะเหลือต้นไม้ทอดข้ามหลังเอาเส้นเชื่อมออก m − n + 1 เส้น

ดีกรี

deg(A) = 2, deg(B) = 2, deg(C) = 2, deg(D) = 2, deg(E) = 2

จุดยอดคี่

0
วงจรออยเลอร์

คำตอบ

วงจรออยเลอร์
6.ทฤษฎีกราฟ

คำตอบ: W = 37

เส้นทางที่สั้นที่สุดและต้นไม้ทอดข้าม: ขั้นตอนวิธีของไดก์สตรายืนยันหนึ่งจุดยอดต่อรอบ: จุดยอดที่ยังไม่ยืนยันซึ่งมีระยะทางชั่วคราวน้อยที่สุด ระยะทางของมันเป็นค่าสุดท้ายแล้ว และเพื่อนบ้าน v ทุกจุดได้ d(v) = min(d(v), d(u) + w(u, v)) ขั้นตอนวิธีของครัสคัลสร้างต้นไม้ทอดข้ามค่าน้อยที่สุดโดยเลือกเส้นเชื่อมจากเบาไปหนักและข้ามเส้นที่ทำให้เกิดวัฏจักร ขั้นตอนวิธีของพริมขยายต้นไม้หนึ่งต้นจากจุดยอดเริ่มต้นโดยเพิ่มเส้นเชื่อมที่เบาที่สุดที่ออกจากต้นไม้เสมอ ต้นไม้ทอดข้ามที่มี n จุดยอดมี n − 1 เส้นเชื่อม

ขั้นตอนวิธีของครัสคัล

BD (3): เลือก
BE (5): เลือก
EF (7): เลือก
CE (8): เลือก
DE (9): ข้าม ทำให้เกิดวัฏจักร
DF (12): ข้าม ทำให้เกิดวัฏจักร
BC (13): ข้าม ทำให้เกิดวัฏจักร
AB (14): เลือก

น้ำหนักรวม

W = 3 + 5 + 7 + 8 + 14 = 37

คำตอบ

W = 37

ExamProblems · examproblems.com/courses/data-structures-and-algorithms