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

สรุปสูตร ขั้นตอนวิธีทำที่สำคัญของทุกหัวข้อ และโจทย์ฝึก 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. Aอัลกอริทึมของ Kruskal
  2. Bต้องใช้ Bellman–Ford ในทุกกรณี
  3. Cการค้นหาในแนวลึก
  4. Dอัลกอริทึมของ Dijkstra
2.อัลกอริทึมและความซับซ้อนยาก

ปัญหา 0/1 knapsack ที่แก้ด้วยการโปรแกรมพลวัตใช้เวลา O(nW) เหตุใดจึงเรียกว่าเวลาแบบกึ่งพหุนาม (pseudo-polynomial)

  1. Aเพราะ n มีค่าน้อยเสมอ
  2. Bเพราะอัลกอริทึมเป็นแบบสุ่มและเวลาทำงานแปรผันไปตามอินพุตแต่ละครั้ง
  3. Cเพราะใช้ได้เฉพาะ W = 0
  4. DW เป็นตัวเลข เวลาจึงเป็นเอกซ์โพเนนเชียลเมื่อเทียบกับจำนวนบิตที่ใช้เขียน W
3.โครงสร้างข้อมูลปานกลาง

โครงสร้างข้อมูลใดใช้ตรวจว่าวงเล็บใน "{[()]}" สมดุลหรือไม่

  1. Aสแตก
  2. Bคิว
  3. Cbinary search tree
  4. Dตารางแฮช
4.โครงสร้างข้อมูลยาก

ข้อได้เปรียบหลักของ skip list เหนือลิงก์ลิสต์ที่เรียงลำดับคืออะไร

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

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

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

มีวอล์กความยาว 2 จาก E ไป A กี่วอล์ก วอล์กอาจซ้ำจุดยอดและเส้นเชื่อมได้ เรียกจำนวนนี้ว่า N

M = เมทริกซ์ประชิดL = 2
N =

3สารละลาย

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

คำตอบ: D · อัลกอริทึมของ Dijkstra

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

อัลกอริทึมของ Dijkstra ใช้ได้กับน้ำหนักที่ไม่เป็นลบ ส่วน Bellman–Ford รองรับน้ำหนักติดลบ และ Kruskal สร้างต้นไม้ทอดข้ามที่น้อยที่สุด

คำตอบ

D · อัลกอริทึมของ Dijkstra
2.อัลกอริทึมและความซับซ้อน

คำตอบ: D · W เป็นตัวเลข เวลาจึงเป็นเอกซ์โพเนนเชียลเมื่อเทียบกับจำนวนบิตที่ใช้เขียน W

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

เวลาทำงานเป็นพหุนามเมื่อเทียบกับค่าของ W แต่เป็นเอกซ์โพเนนเชียลเมื่อเทียบกับความยาวของมัน (log W บิต) ปัญหา 0/1 knapsack เป็น NP-complete

คำตอบ

D · W เป็นตัวเลข เวลาจึงเป็นเอกซ์โพเนนเชียลเมื่อเทียบกับจำนวนบิตที่ใช้เขียน W
3.โครงสร้างข้อมูล

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

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

push วงเล็บเปิดแต่ละตัวและ pop เมื่อเจอวงเล็บปิด ต้องตรงกับวงเล็บที่ pop และสแตกต้องว่างเมื่อจบ

คำตอบ

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

คำตอบ: D · การค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ

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

ระดับแบบสุ่มทำให้การค้นหาข้ามหลายโหนด ได้การค้นหา แทรก และลบ O(log n) คาดหมาย

คำตอบ

D · การค้นหา O(log n) คาดหมาย โดยใช้ตัวชี้ไปข้างหน้าหลายระดับ
5.ทฤษฎีกราฟ

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

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

ดีกรี

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

จุดยอดคี่

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

คำตอบ

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

คำตอบ: N = 1

ดีกรี: ดีกรีของจุดยอดคือจำนวนเส้นเชื่อมที่มาบรรจบที่จุดนั้น เส้นเชื่อมแต่ละเส้นมีสองปลาย ดังนั้นผลบวกของดีกรีเท่ากับสองเท่าของจำนวนเส้นเชื่อม: Σ deg(v) = 2|E| (เล็มมาการจับมือ) ดังนั้นจำนวนจุดยอดที่มีดีกรีคี่เป็นจำนวนคู่ Kn มีเส้นเชื่อม n(n − 1)/2 เส้น กราฟปรกติดีกรี k ที่มี n จุดยอดมี nk/2 เส้น และต้นไม้ที่มี n จุดยอดมี n − 1 เส้นเชื่อม

เมทริกซ์ประชิด

A: 0 1 0 0 0 0
B: 1 0 1 1 1 0
C: 0 1 0 0 1 0
D: 0 1 0 0 1 1
E: 0 1 1 1 0 0
F: 0 0 0 1 0 0

เพื่อนบ้านร่วม

(M²)EA = 0·0 + 1·1 + 1·0 + 1·0 + 0·0 + 0·0 = 1

คำตอบ

N = 1

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