NCU CSTP 中央資訊教育平台

NCU CSTP 中央資訊教育平台

Share

「中央資訊教育平台」是由中央大學資工系同學所架設的網頁平台,以推廣程式設計、資訊科學素養為目標,讓有興趣接觸這塊領域的同學,能透過本平台報名營隊活動或是加入線上課程,探索學習相關知識

13/02/2026

🦖|演算法入門系列

從「能寫出一段程式」到「思考演算法在幹嘛」,中間其實隔著一道不明顯、但非常關鍵的界線😶‍🌫️
這系列的出發點,就是想陪大家一起跨過這條線🚀

我們透過經典例題、簡易圖解,帶大家一步一步理解:

🔹 Python 進階語法:掌握物件導向等語法,為解題打下穩固基礎。
🔹時間複雜度:學會判斷程式效率,讓你不再只靠感覺寫程式。
🔹簡單演算法:從排序、前綴和出發,建立解題的邏輯思維。
🔹圖論:認識圖的結構與遍歷方法,打開中高階題目的大門。

📌 如果你已經看過系列貼文,想更系統性複習、或用題目檢視自己吸收了多少,歡迎讀者們到HackMD 講義,更詳細的敘述、圖解、範例題 通通在這裡:
📚https://hackmd.io/

Photos from NCU CSTP 中央資訊教育平台's post 27/01/2026

🦖|演算法入門第十一課:動態規劃(Dynamic Programming, DP)

有些問題之所以看起來非常複雜,其實只是因為同樣的選擇被一再重複計算,而動態規劃正是為了解決這類問題而存在的

在前一課學過分治法之後,這一課接著來看看動態規劃是如何透過「記錄結果」,換取更好的效能與決策品質。

🎯 DP 解題三步驟:
1️⃣ 定義子問題:我可以把問題拆成哪些小任務?
2️⃣ 寫出遞迴關係:小任務如何組合成大任務?
3️⃣ 避免重複計算:用表格或記憶化來加速!

透過動態規劃,我們只需要做到一件事:「算一次、記起來、重複使用」🚀

在這組圖文中,我們會向大家介紹:
✅ DP 的核心概念:為什麼「記錄結果」這麼重要
✅ DP 解題的三個關鍵步驟:定義子問題、找遞迴關係、避免重複計算
✅ 以費波那契數列理解:為什麼單純遞迴會變慢
✅ 經典題型:背包問題的基本分類與思考方式

📚 想看完整講義與範例?
👇 透過以下連結查看全文
https://hackmd.io/a6V_R4anTvCx1Wn5e-YSBg

#動態規劃 #演算法

Photos from NCU CSTP 中央資訊教育平台's post 24/01/2026

🦖|演算法入門第十課:貪心演算法(Greedy Algorithm)

假設你在便利商店打工,遇到一位客人要找 37 元💰
你會怎麼找錢?
直覺上,大多數人都會從「面額最大的硬幣」開始找,對吧?

這種「每一步都先做當下看起來最好的選擇」的思考方式,就是貪心演算法(Greedy Algorithm)的核心精神✨

貪心演算法的做法很單純,就是在解問題的過程中,每一步都選擇局部最佳解,期待這樣一路走下去,最後能得到整體的好結果🚀

在這組圖文中,會透過幾個層次來帶你理解貪心的本質:

✅ 從「找零錢」這種日常情境,直覺理解什麼是貪心選擇
✅ 看看哪些問題只要「先排序」,就能用貪心解掉
✅ 為什麼有些看起來合理的貪心策略,其實會失敗
✅「反悔貪心」這個用來補救貪心缺陷的重要概念

📚 想看完整講義與更多圖解?
👇 透過以下連結查看全文
https://hackmd.io//SkdJioTi1e

Photos from NCU CSTP 中央資訊教育平台's post 15/01/2026

🦖|演算法入門第九課:Divide and Conquer

當問題變得又大又複雜時,真正困難的往往不是「怎麼解」,而是「不知道從哪裡下手」。

分治(Divide and Conquer)演算法的核心想法就是為了讓問題處理變得更容易,簡單來說就是把大問題拆成小問題,再逐一解決,透過這種方法就能讓原先複雜的問題變得可控🚀

在這一課中,我們會先建立分而治之的基本概念,並理解它經典的三個階段:

✅ 分割(Divide):將原問題分割成兩個或多個子問題
✅ 克服(Conquer):用相同的演算法遞迴地解決所有子問題
✅ 合併(Merge):透過合併所有子問題的解答來得到原問題的解

接著我們會透過排序等演算法,讓大家更清楚分治的概念是如何實際運作在演算法設計中的💡

📚 想看完整講義?
👇 透過以下連結查看全文
https://hackmd.io/mHF6PhkFTzmx0CQvuLdxng

Photos from NCU CSTP 中央資訊教育平台's post 12/01/2026

🦖|演算法入門第八課:堆積排序(Heap Sort)

在資訊爆炸的時代,真正困難的從來不是「資料很多」,而是如何在混亂之中,快速找出最重要的那一個🔍

如果我們能把一堆看似雜亂的數字,重新排列成一座有層級、有秩序的金字塔——讓「重要的」永遠站在最上面,這樣每次只要伸手就能拿到答案,事情是不是就簡單多了?

這正是 堆積排序(Heap Sort) 的核心想法。

🧱 Heap:有秩序的混亂
堆積是一種特殊的完全二元樹,它不追求整體排序,而是維持一個關鍵規則:
👉 父節點永遠比子節點大(或小)。
這樣一來最大(或最小)的元素,永遠都在「堆頂」。

🔁 Heap Sort:反覆取出關鍵角色
堆積排序的做法很直觀,它會先建立堆結構,再一次次把堆頂取出、調整結構,讓混亂的資料逐步「化亂為序」🚀

📚 完整圖解、Heap 結構與題目應用
👇 透過以下連結查看全文
https://hackmd.io//ryIx5Cuyxg

Photos from NCU CSTP 中央資訊教育平台's post 09/01/2026

🦖|演算法入門第七課:圖論——尤拉路徑與尤拉迴路(Euler Path & Euler Circuit)

你可能玩過這樣的題目:
能不能一筆畫,走過每一條邊,而且不重複?

在簡單的圖上,我們很快就能靠直覺找出答案;但當節點變多、連線變複雜時,「試試看」開始變得又慢又不可靠。而這類問題,在圖論中被稱為尤拉路徑(Euler Path) 與尤拉迴路(Euler Circuit)。

透過尤拉路徑與尤拉迴路,我們可以在動筆之前,就先判斷:
👉🏻這張圖「能不能一筆畫」
👉🏻必須從哪個點開始
👉🏻是否能走回起點,形成一個完整的迴路

讓看似靠運氣的問題,變成有規則可循的判斷🚀

📚 想看完整的一筆畫判斷規則與圖解示範?
👇 點擊下方連結查看講義內容
https://hackmd.io//Hydgjiaske

Photos from NCU CSTP 中央資訊教育平台's post 02/01/2026

🦖|演算法入門第六課:圖論——拓樸排序(Topological Sorting)

《莊子.養生主》中,庖丁解牛,遊刃有餘。
不是因為他力氣大,而是他清楚知道先後與結構。

在現實世界中,許多任務也有這樣的特性——有些事情必須先完成,後面的事才能開始。當這些依賴關係形成一個龐大而有方向性的網絡時,如何「解」其「牛」,找到一條正確的執行路徑,便成了關鍵🚀

這類「有順序限制」的問題,在圖論中可以用拓樸排序來思考。它專門用來處理有向、且不形成環的圖,幫助我們把複雜的依賴關係,排成一條可執行的順序。

就像庖丁解牛一樣,不是硬拆問題,而是順著結構,把事情一次做好。

📚 完整圖解與例子在講義中
👇 透過以下連結查看全文
https://hackmd.io//H1hyoo6skl

Photos from NCU CSTP 中央資訊教育平台's post 26/12/2025

🦖|演算法入門第五課:圖論——BFS 與 DFS

在茫茫迷宮中,探路者站在分岔口前。
他面前有兩條路——
一條是廣而淺,層層推進;
一條是深而險,直探到底。

在前幾課中,我們已經學會如何用 Graph 來描述問題,
接下來,則要來看看:當我們真正走進圖裡時,該怎麼走。

這一堂課,會介紹兩個最經典的圖論搜尋演算法:
廣度優先搜尋(BFS) 與 深度優先搜尋(DFS)。

🌊 BFS:如水漫地
從起點出發,先探索周圍所有可能,再一層一層向外擴展。
搜尋的過程就像水慢慢滲入每個角落,不急著深入,但不漏掉任何方向。

🧗 DFS:如潛入深井
從起點一路往最深處前進,直到再也走不下去,才回頭嘗試其他分岔。
它像一個固執的探險者,不撞到牆,絕不回頭。

🧠 思維轉換
🔎BFS 在意的是「全面」與「最短」
🔎DFS 著眼的是「深入」與「可能性」

在圖論的世界裡,沒有誰一定比較好,只有「你現在想解的是哪一種問題」。
你,會是哪一種探路者?

📚 想看 BFS / DFS 的圖解與範例教學?
👇 透過以下連結查看全文
https://hackmd.io/-0-g8bw/SkSV3ey3Je

Photos from NCU CSTP 中央資訊教育平台's post 23/12/2025

🦖|演算法入門第四課:圖論——最小生成樹(MST)

假如你要幫一整個社區鋪設網路線,每兩棟建築之間都有不同的施工成本,但你希望所有地方都能連到網路、又不想多拉任何一條沒必要的線,你會怎麼規劃?

這類「全部要連到,但總成本要最小」的問題,在演算法裡就是一個經典題型:最小生成樹(Minimum Spanning Tree, MST)。

在前一課建立了 Graph 的基本觀念之後,接下來我們會透過 MST 來看看 Graph 如何真正拿來解現實世界的問題。

在這組圖文中,會依序介紹:
✅ MST 的概念
✅ 兩種常見解法:Prim’s Algorithm 與 Kruskal’s Algorithm
✅ Kruskal 中如何避免形成「環」的關鍵想法

透過一步一步的圖示說明,讓大家先理解「演算法在做什麼選擇」,也幫助大家在遇到生活中的成本規劃問題時,能更自然地把問題轉換成 Graph 來思考。

📚 想看完整講義?
👇 透過以下連結查看全文
https://hackmd.io//SkdJioTi1e

Photos from NCU CSTP 中央資訊教育平台's post 20/12/2025

🦖|演算法入門第三課:Basic Graph Theory

在學會評估演算法效率、也接觸過一些基礎解題技巧後,接下來我們要正式進入 Graph(圖論) 的世界了。
這一單元會帶你走過圖論的入門基礎,建立之後學習 BFS、DFS、最短路徑等演算法所需要的核心概念。

Graph 看起來很抽象,但其實離生活一點也不遠。
像是捷運路線圖、好友關係網、網站之間的連結,甚至是「A 能不能走到 B」,本質上都可以用 Graph 來描述。

在這組圖文中,會依序介紹:
✅Graph 的基本組成
✅常見的 Graph 類型
✅Graph 在程式中常見的儲存方式

透過直覺圖示與簡單說明,讓大家先「看得懂 Graph 在描述什麼」,而不是一開始就被演算法細節淹沒🚀

📚 想看完整講義?
👇 透過以下連結查看全文
https://hackmd.io//B1-JtywhJl

Photos from NCU CSTP 中央資訊教育平台's post 15/12/2025

🦖|演算法入門: Simple Algorithms

在前一個單元中,我們介紹了 時間複雜度(Time Complexity)與 Big O,學會用同一套標準來評估不同程式寫法的效率。

接下來,課程會進入 Simple Algorithms,帶你認識一些實際解題時常見、但非常關鍵的演算法概念,例如:排序、前綴和

這些技巧看起來簡單,卻經常是把「暴力解」變成「可通過測資解」的關鍵。

在這組圖文中,會用直覺的動畫比較不同複雜度下演算法效率差異,讓大家更好了解它如何幫助我們更有效率地處理區間問題,演算法不再只是抽象名詞。

📚 想看完整講義?👇 掃描 QR code 或透過以下連結查看全文
https://hackmd.io//SJosmXioJl

Photos from NCU CSTP 中央資訊教育平台's post 12/12/2025

🦖|演算法入門必修:Time Complexity
在學完 Python 的基礎與進階語法後,我們終於要走進演算法的世界啦!🎉
但在開始解題之前,有件更重要的事——先學會判斷程式效率,也就是 時間複雜度(Time Complexity)

🔍 為什麼需要時間複雜度?
因為「能跑」不代表「跑得好」。
資料一變大,程式可能慢到讓你懷疑人生 🥲
Big O 是一種描述時間複雜度的方法,透過它我們就可以衡量程式效率。

在這堂課裡,我們會用直覺的方式帶你看懂不同方法速度的差別,並讓 Big O 變得好理解、好上手。

📚 想看完整講義?
所有示例、圖解與延伸內容,都整理在講義裡啦!
👇 掃描 QR code 或透過以下網址查看全文
https://hackmd.io//SJosmXioJl

Want your school to be the top-listed School/college in Taoyüan?

Click here to claim your Sponsored Listing.

Location

Category

Address

中大路300號
Taoyüan
320