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

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

ด้วยเหรียญ 1, 3 และ 4 และยอด 6 วิธีละโมบ "หยิบเหรียญใหญ่สุดก่อน" ใช้เหรียญกี่เหรียญเมื่อเทียบกับค่าที่เหมาะสมที่สุด

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

ต้องแสดงสองสิ่งใดเพื่อพิสูจน์ว่าปัญหาการตัดสินใจ X เป็น NP-complete

  1. AX อยู่ใน NP และปัญหา NP-complete ที่ทราบลดรูปมาเป็น X ในเวลาพหุนาม
  2. BX ลดรูปไปเป็นปัญหาใน P และ X อยู่ใน NP
  3. CX อยู่ใน P และ X ลดรูปไปเป็น SAT
  4. DX ไม่มีอัลกอริทึมพหุนาม และ X ตัดสินได้
3.โครงสร้างข้อมูลปานกลาง

โหนดใน binary search tree มีต้นไม้ย่อยขวา in-order successor ของมันอยู่ที่ใด

  1. Aลูกขวาของมันเสมอ
  2. Bโหนดซ้ายสุดของต้นไม้ย่อยขวา
  3. Cโหนดขวาสุดของต้นไม้ย่อยซ้าย
  4. Dแม่ของมันเสมอ
4.โครงสร้างข้อมูลยาก

โครงสร้างข้อมูลใดรองรับแคช LRU (least recently used) ที่ get และ put เป็น O(1)

  1. Aสแตกเท่านั้น
  2. Bbinary search tree เท่านั้น
  3. Chash map ร่วมกับลิงก์ลิสต์สองทิศทาง
  4. Dอาร์เรย์เรียงลำดับเดียว
5.ทฤษฎีกราฟปานกลาง
ABCDEFวงจรออยเลอร์ทางเดินออยเลอร์ ไม่มีวงจรไม่ใช่ทั้งสองอย่าง

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

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

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

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

3สารละลาย

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

คำตอบ: A · ละโมบใช้ 3 เหรียญ ค่าที่เหมาะสมที่สุดคือ 2

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

วิธีละโมบหยิบ 4 + 1 + 1 = 3 เหรียญ แต่ 3 + 3 ใช้เพียง 2 วิธีละโมบจึงไม่เหมาะสมที่สุดสำหรับระบบเหรียญนี้ การโปรแกรมพลวัตทำได้

คำตอบ

A · ละโมบใช้ 3 เหรียญ ค่าที่เหมาะสมที่สุดคือ 2
2.อัลกอริทึมและความซับซ้อน

คำตอบ: A · X อยู่ใน NP และปัญหา NP-complete ที่ทราบลดรูปมาเป็น X ในเวลาพหุนาม

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

การเป็นสมาชิกของ NP แสดงว่า X ไม่ยากกว่า NP ส่วนการลดรูปจากปัญหา NP-complete ที่ทราบแสดงว่า X ยากอย่างน้อยเท่าทั้ง NP

คำตอบ

A · X อยู่ใน NP และปัญหา NP-complete ที่ทราบลดรูปมาเป็น X ในเวลาพหุนาม
3.โครงสร้างข้อมูล

คำตอบ: B · โหนดซ้ายสุดของต้นไม้ย่อยขวา

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

คีย์ที่ใหญ่กว่าที่อยู่ใกล้โหนดอยู่ในต้นไม้ย่อยขวา และตัวที่เล็กที่สุดคือโหนดซ้ายสุดที่นั่น

คำตอบ

B · โหนดซ้ายสุดของต้นไม้ย่อยขวา
4.โครงสร้างข้อมูล

คำตอบ: C · hash map ร่วมกับลิงก์ลิสต์สองทิศทาง

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

Hash map หาโหนดใน O(1) และลิงก์ลิสต์สองทิศทางย้ายรายการที่เข้าถึงไปด้านหน้าและขับออกจากด้านหลังใน O(1)

คำตอบ

C · hash map ร่วมกับลิงก์ลิสต์สองทิศทาง
5.ทฤษฎีกราฟ

คำตอบ: ไม่ใช่ทั้งสองอย่าง

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

ดีกรี

deg(A) = 1, deg(B) = 3, deg(C) = 3, deg(D) = 3, deg(E) = 4, deg(F) = 2

จุดยอดคี่

A, B, C, D → 4
ไม่ใช่ทั้งสองอย่าง

คำตอบ

ไม่ใช่ทั้งสองอย่าง
6.ทฤษฎีกราฟ

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

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

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

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

A (0): B: 4, C: 5
B (4): D: 10, E: 8
C (5)
E (8): F: 11
D (10)
F (11)

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

A → B → E → F
d(F) = 11

คำตอบ

d(F) = 11

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