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

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

ความซับซ้อนเชิงเวลาของอัลกอริทึมการโปรแกรมพลวัตมาตรฐานสำหรับสายอักขระย่อยร่วมที่ยาวที่สุด (LCS) ของสายอักขระที่ยาว m และ n คือเท่าใด

  1. AO(mn log n)
  2. BO(mn)
  3. CO(2m+n)
  4. DO(m + n)
2.อัลกอริทึมและความซับซ้อนยาก

Insertion sort ทำงานใน O(n) บนอินพุตที่เรียงแล้ว สิ่งนี้ขัดกับขอบเขตล่าง Ω(n log n) ของการเรียงแบบเปรียบเทียบหรือไม่

  1. Aไม่ขัด เพราะ insertion sort ไม่ใช่การเรียงแบบเปรียบเทียบ
  2. Bไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
  3. Cขัด ดังนั้นขอบเขตล่างจึงผิด
  4. Dขัด แต่เฉพาะอาร์เรย์ที่สั้นกว่า 100
3.โครงสร้างข้อมูลปานกลาง

เครือข่ายถนนมี 100,000 ทางแยก แต่ละแห่งเชื่อมกับประมาณ 4 แห่ง การแทนแบบใดเหมาะที่สุด

  1. Aอาร์เรย์เรียงลำดับเดียวของจุดยอด
  2. Bฮีปทวิภาคของเส้นเชื่อม
  3. Cรายการประชิด
  4. Dเมทริกซ์ประชิด
4.โครงสร้างข้อมูลยาก

โครงสร้างใดช่วยคำนวณค่าสูงสุดของทุกหน้าต่างขนาด k ในอาร์เรย์ในเวลารวม O(n)

  1. Aลิงก์ลิสต์เชิงเดี่ยวของสมาชิกในหน้าต่าง
  2. Bdeque ที่เก็บดัชนีเรียงตามค่าจากมากไปน้อย
  3. Cmin-heap ที่สร้างใหม่ทุกหน้าต่าง
  4. Dอาร์เรย์เรียงลำดับที่อัปเดตด้วยการเลื่อน
5.ทฤษฎีกราฟปานกลาง
ABCDEFวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

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

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

ใช้ขั้นตอนวิธีของไดก์สตราเพื่อหาความยาว d(F) ของเส้นทางที่สั้นที่สุดจาก A ไป F ในกราฟถ่วงน้ำหนัก

เริ่มต้น: Aสิ้นสุด: F
d(F) =

3สารละลาย

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

คำตอบ: B · O(mn)

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

ตารางมี (m + 1)(n + 1) ช่อง และแต่ละช่องคำนวณใน O(1) จากช่องข้างเคียง

คำตอบ

B · O(mn)
2.อัลกอริทึมและความซับซ้อน

คำตอบ: B · ไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต

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

ขอบเขตนี้บอกว่าการเรียงแบบเปรียบเทียบทุกชนิดต้องใช้ประมาณ n log n การเปรียบเทียบกับอินพุตบางแบบขนาด n อินพุตพิเศษอาจเร็วกว่ามาก

คำตอบ

B · ไม่ขัด ขอบเขตล่างใช้กับกรณีเลวร้ายที่สุดเหนือทุกอินพุต ไม่ใช่ทุกอินพุต
3.โครงสร้างข้อมูล

คำตอบ: C · รายการประชิด

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

เมทริกซ์ต้องใช้ 1010 ช่อง เกือบทั้งหมดว่าง รายการประชิดเก็บเพียงรายการเส้นเชื่อมราว 400,000 รายการ

คำตอบ

C · รายการประชิด
4.โครงสร้างข้อมูล

คำตอบ: B · deque ที่เก็บดัชนีเรียงตามค่าจากมากไปน้อย

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

ด้านหน้าของ deque คือค่าสูงสุดของหน้าต่างเสมอ แต่ละดัชนีเข้าและออกจาก deque เพียงครั้งเดียว งานจึงเป็นเชิงเส้น

คำตอบ

B · deque ที่เก็บดัชนีเรียงตามค่าจากมากไปน้อย
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) = 4, deg(F) = 2

จุดยอดคี่

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

คำตอบ

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

คำตอบ: d(F) = 21

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

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

แต่ละบรรทัด: จุดยอดที่ยืนยัน ระยะทางสุดท้ายของมัน และเพื่อนบ้านที่ระยะทางดีขึ้น

A (0): C: 5
C (5): B: 18, E: 12, G: 8
G (8): B: 15, D: 13, E: 10
E (10): F: 21
D (13)
B (15)
F (21)

เส้นทางที่สั้นที่สุด

A → C → G → E → F
d(F) = 21

คำตอบ

d(F) = 21

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