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

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 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.อัลกอริทึมและความซับซ้อนปานกลาง

การที่ปัญหามีโครงสร้างย่อยเหมาะสมที่สุด (optimal substructure) หมายความว่าอย่างไร

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

ข้อใดเกี่ยวกับการเลือกสมาชิกที่เล็กที่สุดอันดับที่ k ของอาร์เรย์ที่ไม่เรียงลำดับถูกต้อง

  1. Aการเลือกทำได้ใน O(n²) เท่านั้น
  2. BQuickselect ทำงานใน O(n) คาดหมาย และ median-of-medians รับประกัน O(n) ในกรณีเลวร้ายที่สุด
  3. CQuickselect ทำงานใน O(log n) ในกรณีเลวร้ายที่สุด เพราะเรียกซ้ำเพียงฝั่งเดียวของตัวหมุน
  4. Dการเลือกต้องใช้ Ω(n log n) เสมอเพราะต้องเรียงลำดับ
3.โครงสร้างข้อมูลปานกลาง

โครงสร้างข้อมูลใดที่การค้นหาในแนวลึก (DFS) แบบวนซ้ำใช้

  1. Aคิว
  2. Bสแตก
  3. Cฮีป
  4. Dตารางแฮชเท่านั้น
4.โครงสร้างข้อมูลยาก

อัลกอริทึมของ Kahn สำหรับการเรียงทอพอโลยีลบจุดยอดที่มี in-degree 0 ซ้ำ ๆ โครงสร้างใดเก็บจุดยอดเหล่านั้น

  1. Aเมทริกซ์ประชิดที่บันทึกว่าจุดยอดใดถูกลบไปแล้ว
  2. Bmax-heap เรียงตาม out-degree
  3. Cสแตกของเส้นเชื่อมที่เยี่ยมทั้งหมด
  4. Dคิว (หรือคอลเล็กชันใดก็ได้) ของจุดยอดที่มี in-degree เป็น 0
5.ทฤษฎีกราฟปานกลาง

กราฟบริบูรณ์ K5 มีวงจรแฮมิลตันที่แตกต่างกันกี่วงจร H วงจรที่ต่างกันเพียงจุดยอดเริ่มต้นหรือทิศทางนับเป็นวงจรเดียวกัน

K5
H =
6.ทฤษฎีกราฟยาก
756101411101213ABCDEFG

ขั้นตอนวิธีของไดก์สตราเริ่มจาก A ให้คลิกจุดยอดที่ถูกยืนยัน (ทำให้เป็นค่าถาวร) ในรอบที่ 3 โดย A เองคือรอบที่ 1

เริ่มต้น: Aรอบ 3
  1. 1A
  2. 2B
  3. 3C
  4. 4D
  5. 5E
  6. 6F
  7. 7G

3สารละลาย

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

คำตอบ: D · คำตอบที่เหมาะสมที่สุดสร้างได้จากคำตอบที่เหมาะสมที่สุดของปัญหาย่อย

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

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

คำตอบ

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

คำตอบ: B · Quickselect ทำงานใน O(n) คาดหมาย และ median-of-medians รับประกัน O(n) ในกรณีเลวร้ายที่สุด

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

งานคาดหมายของ Quickselect คือ n + n/2 + n/4 + ... = O(n) เมื่อสุ่มตัวหลัก การเลือกตัวหลักด้วย median of medians ทำให้กรณีเลวร้ายที่สุดเป็นเชิงเส้น

คำตอบ

B · Quickselect ทำงานใน O(n) คาดหมาย และ median-of-medians รับประกัน O(n) ในกรณีเลวร้ายที่สุด
3.โครงสร้างข้อมูล

คำตอบ: B · สแตก

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

DFS สำรวจลึกที่สุดเท่าที่ทำได้ โดยใช้สแตกตามธรรมชาติ (หรือสแตกการเรียกของการเรียกซ้ำ) ส่วน BFS ใช้คิว

คำตอบ

B · สแตก
4.โครงสร้างข้อมูล

คำตอบ: D · คิว (หรือคอลเล็กชันใดก็ได้) ของจุดยอดที่มี in-degree เป็น 0

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

จุดยอดที่พร้อมถูกเก็บในคิว การลบหนึ่งจุดลด in-degree ของข้างเคียง และตัวที่ถึง 0 ถูกเพิ่ม ได้เวลา O(V + E)

คำตอบ

D · คิว (หรือคอลเล็กชันใดก็ได้) ของจุดยอดที่มี in-degree เป็น 0
5.ทฤษฎีกราฟ

คำตอบ: H = 12

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

นับ

H = (5 − 1)!/2 = 24/2 = 12

คำตอบ

H = 12
6.ทฤษฎีกราฟ

คำตอบ: B

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

ไดก์สตราทีละรอบ

1. A (0): C: 7
2. C (7): B: 12, E: 17, G: 20
3. B (12): D: 18
4. E (17): F: 27
5. D (18)
6. G (20)
7. F (27)

รอบ 3

B

คำตอบ

B

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