---
# System prepended metadata

title: 演算法 - 王紹睿

---

# 演算法 - 王紹睿

> **維護者：左喵**

> **王紹睿(四捨五入)說：**
> 「如果不學好演算法」
> 「你會成為50歲還在打底層code的酗酒大叔」
> 「把酒味帶到公司 被組員排擠 被企業踢來踢去」
> 「沒人愛你」

> **分數**
> Homework: 20%
> Midterm: 40%
> Finalterm: 40%
> Bonus (interaction in class) 20%

> **助教**
> 黃正伊: M11315043@mail.ntust.edu.tw
> 賴柏宇: M11315127@mail.ntust.edu.tw

> [**Moodle**](https://moodle2.ntust.edu.tw/course/view.php?id=13783)

# 課程大綱
- **導論**
    - 穩定婚姻問題 (Stable-Marriages Problem)
- **基礎**
	- 演算法分析基礎 (Basics of Algorithm Analysis)
	- 圖論搜尋 (Graph Search)
	- 廣度優先搜尋 (Breadth-First Search, BFS)
	- 深度優先搜尋 (Depth-First Search, DFS)
- **一般演算法技巧**
	- 貪婪演算法 (Greedy Algorithm)
	- 分治法 (Divide and Conquer)
	- 排序演算法 (Sorting)（例如 合併排序 (Merge Sort)）
	- 動態規劃 (Dynamic Programming, DP)
- **進階演算法技巧與議題**
	- 計算不可行性 (Computational Intractability)
	- NP 問題與 PSPACE 問題 (NP and PSPACE)
# 0. Introduction
> [簡報](https://drive.google.com/file/d/1gyVmDJFo38mdteBol9epCAqn3_heLRRY/view)
## 演算法（Algorithm）的定義

- 演算法是一種明確且有限的步驟，用來將輸入轉換為所需的輸出。
- 演算法必須滿足以下條件：
> 1.	有限性（Finiteness）：演算法應該是清楚且不含糊的。
> 2.	確定性（Definiteness）：必須能在有限步驟內終止。
> 3.	有效性（Effectiveness）：每一步驟都應該是基本且可行的。
> 4.	程序性（Procedure）：有條理的步驟順序。

# 1. 穩定婚配問題（Stable Matching Problem）
> [簡報](https://drive.google.com/file/d/1gyVmDJFo38mdteBol9epCAqn3_heLRRY/view)

> [筆記](https://hackmd.io/@Left-owo/S1lMtrYqJg)
# 2. 演算法分析 (Algorithm Analysis)
> [簡報](https://drive.google.com/file/d/1iEWLbZHWA-x3JERMk6pd0lr-awlpwKSH/view)

> [筆記](https://hackmd.io/@Left-owo/B1OMw8a5yg)