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

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

อัลกอริทึมของ Prim สร้างต้นไม้ทอดข้ามที่น้อยที่สุดอย่างไร

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

ทฤษฎีบท Cook–Levin พิสูจน์สิ่งใด

  1. Aปัญหาการหยุดตัดสินไม่ได้
  2. Bทุกปัญหา NP แก้ได้ในเวลาเอกซ์โพเนนเชียล
  3. Cปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete
  4. DP ไม่เท่ากับ NP
3.โครงสร้างข้อมูลปานกลาง

บัฟเฟอร์วงกลม (circular buffer หรือ ring buffer) มักใช้สร้าง

  1. Aคิวขนาดคงที่
  2. Bการท่องกราฟ
  3. Cฟังก์ชันแฮช
  4. Dต้นไม้ค้นหาแบบทวิภาค
4.โครงสร้างข้อมูลยาก

ข้อใดเกี่ยวกับ heapsort ถูกต้อง

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

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

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

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

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

3สารละลาย

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

คำตอบ: B · ขยายต้นไม้ต้นเดียวจากจุดยอดเริ่มต้น โดยเพิ่มเส้นเชื่อมที่ถูกที่สุดที่ออกจากต้นไม้

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

อัลกอริทึมของ Prim ที่ใช้คิวลำดับความสำคัญของเส้นเชื่อมที่ข้ามขอบเขตทำงานใน O(E log V) เมื่อใช้ฮีปไบนารี

คำตอบ

B · ขยายต้นไม้ต้นเดียวจากจุดยอดเริ่มต้น โดยเพิ่มเส้นเชื่อมที่ถูกที่สุดที่ออกจากต้นไม้
2.อัลกอริทึมและความซับซ้อน

คำตอบ: C · ปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete

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

Cook และ Levin แสดงโดยอิสระต่อกันว่าทุกปัญหาใน NP ลดรูปมาเป็น SAT ในเวลาพหุนาม SAT จึงเป็นปัญหา NP-complete ข้อแรกที่รู้จัก

คำตอบ

C · ปัญหาความสอดคล้องของสูตรบูลีน (SAT) เป็น NP-complete
3.โครงสร้างข้อมูล

คำตอบ: A · คิวขนาดคงที่

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

Ring buffer ใช้ดัชนีหัวและท้ายที่วนกลับ ให้ enqueue และ dequeue ใน O(1) ด้วยหน่วยความจำคงที่

คำตอบ

A · คิวขนาดคงที่
4.โครงสร้างข้อมูล

คำตอบ: A · เรียงในที่เดิมใน O(n log n) กรณีเลวร้ายที่สุด แต่ไม่เสถียร

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

Heapsort สร้าง max-heap และดึงค่าสูงสุดออก n ครั้งภายในอาร์เรย์เดียวกัน การสลับระยะไกลอาจจัดเรียงคีย์ที่เท่ากันใหม่

คำตอบ

A · เรียงในที่เดิมใน O(n log n) กรณีเลวร้ายที่สุด แต่ไม่เสถียร
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.ทฤษฎีกราฟ

คำตอบ: N = 7

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

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

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

อีกหนึ่งก้าว

(M³)CE = 1·0 + 2·1 + 3·1 + 1·1 + 1·0 + 1·1 = 7

คำตอบ

N = 7

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