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

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

ความสัมพันธ์เวียนเกิด T(n) = 2T(n − 1) + O(1) มีผลเฉลยเป็นเท่าใด

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

เหตุใดการค้นหาเฉลี่ยในตารางแฮชจึงเป็น O(1) แต่กรณีเลวร้ายที่สุดเป็น O(n)

  1. Aคีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
  2. Bอาร์เรย์เข้าถึงใน O(n)
  3. Cฟังก์ชันแฮชช้า
  4. Dต้องเรียงคีย์ก่อน
3.โครงสร้างข้อมูลปานกลาง

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

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

คุณต้องเก็บค่าที่น้อยที่สุด k ตัวจากสตรีมของตัวเลข n ตัวโดยใช้หน่วยความจำ O(k) แนวทางใดทำงานใน O(n log k)

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

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

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

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

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

3สารละลาย

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

คำตอบ: D · O(2ⁿ)

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

จำนวนการเรียกเพิ่มเป็นสองเท่าในแต่ละระดับและมี n ระดับ ผลรวมจึงประมาณ 2ⁿ เช่นเดียวกับหอคอยฮานอย

คำตอบ

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

คำตอบ: A · คีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน

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

เมื่อมีฟังก์ชันแฮชที่ดีและตัวประกอบการโหลดเหมาะสม ถังจะสั้นโดยเฉลี่ย แต่การโจมตีหรือแฮชที่แย่อาจทำให้ทุกคีย์ไปอยู่ในถังเดียว

คำตอบ

A · คีย์จำนวนมากอาจชนกันไปอยู่ในถังเดียวกัน
3.โครงสร้างข้อมูล

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

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

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

คำตอบ

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

คำตอบ: A · max-heap ขนาด k โดยแทนที่รากเมื่อมีค่าที่เล็กกว่ามา

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

รากของ max-heap คือค่าที่ใหญ่ที่สุดที่เก็บไว้ ค่าใหม่ที่เล็กกว่าแทนที่มันใน O(log k) ฮีปจึงเก็บ k ค่าที่น้อยที่สุดจนถึงขณะนั้นเสมอ

คำตอบ

A · max-heap ขนาด k โดยแทนที่รากเมื่อมีค่าที่เล็กกว่ามา
5.ทฤษฎีกราฟ

คำตอบ: ทางเดินออยเลอร์ ไม่มีวงจร

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

ดีกรี

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

จุดยอดคี่

B, E → 2
ทางเดินออยเลอร์ ไม่มีวงจร

คำตอบ

ทางเดินออยเลอร์ ไม่มีวงจร

ทางเดินออยเลอร์เริ่มที่จุดยอดคี่จุดหนึ่งและจบที่อีกจุดหนึ่ง

6.ทฤษฎีกราฟ

คำตอบ: N = 4

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

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

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

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

(M²)BB = 1·1 + 0·0 + 1·1 + 1·1 + 1·1 = 4

คำตอบ

N = 4

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