簡介
學習資源
第一週 - 搜尋、排序、貪心
- 線上教材
教材 說明 師大碼賽客:排序/貪心/二分搜 子緯學長的教學講義(詳盡的新手入門) 北一女培訓:排序 六種排序法的程式與簡介 建中培訓 (第4/6/7節) 4.排序STL/6.貪心/7.二分搜 台大資訊之芽:貪心 貪心法與理論/Huffman Tree 成大競程培訓 (單元5/6) 5.二分搜/6.三種排序 - 線上影片
影片 說明 台大孔令傑老師:二分搜尋法 7 分鐘學會二分搜尋法 看舞蹈學排序法 以舞蹈呈現各種排序法的運作過程 台大陳縕儂老師:貪心 50 分鐘的正規演算法課程 (CLRS課本) - 演算法視覺化
第二週 - STL、併查集
- 內容大綱
資料結構 簡要說明 C++ 內建 陣列 在記憶體中連續,支援隨機存取以及 O(1) 插入尾端 std::vector 字串 以 ‘\0’ 結尾的字元陣列 std::string 串列 linked list 支援 O(1) 的插入與刪除 std::list 堆疊 stack 支援後進先出 (LIFO) 的存取模式 std::stack 佇列 queue 支援先進先出 (FIFO) 的存取模式 std::queue 堆積 heap (優先隊列 priority_queue) 支援 O(logN) 的插入和 O(logN) 取出最大/小值 std::priority_queue 併查集 disjoint set 有效率地合併兩個集合、有效率地查詢兩個元素是否屬於同一集合 無。模板 平衡搜尋樹 記錄 (鍵, 值) 對應關係,支援 O(logN) 的插入和查詢 std::map 平衡搜尋樹 實現「集合」,支援 O(logN) 的插入和查詢 std::set - 線上教材
教材 說明 師大碼賽客:基礎資料結構/STL 品新學長的教學講義(詳盡的STL語法示範與題目解說) 板中培訓:STL STL語法 建中培訓 (第3節) STL語法 北一女培訓:樹/二元樹/Heap/BST 樹狀結構投影片 北一女培訓:併查集(disjoint set) 併查集投影片 成大競程培訓 (單元2/3/4) 資結/STL/樹/圖 - 演算法視覺化
第三週 - 圖、狀態搜尋、拓樸排序、尤拉路
- 線上教材
教材 說明 師大碼賽客:狀態搜尋 仲軒學長的教學講義(手把手教學與題目解說) 師大碼賽客:基礎圖論 健愷學長的教學講義(有拓樸序和尤拉路) 台大資訊之芽:圖 圖的實作/搜尋/二分圖判定 建中培訓 (第 1/2/5 節) 第5節有拓樸排序 成大培訓 (單元 4):圖/DFS/BFS 有一些練習題 - 線上影片
影片 說明 台大陳縕儂老師:圖 40 分鐘學圖的概念、實作與一筆畫問題 台大陳縕儂老師:BFS 60 分鐘(主要講證明) 台大陳縕儂老師:DFS/連通/拓樸排序 60 分鐘 - 演算法視覺化
演算法 說明 BFS 搭配樹狀圖/陣列實作/串列實作:推薦! DFS 搭配樹狀圖/陣列實作/串列實作:推薦! 連通 (connected component) 搭配樹狀圖/陣列實作/串列實作 拓樸排序 搭配樹狀圖/陣列實作/串列實作
第四週 - 動態規劃
- 線上教材
教材 說明 師大碼賽客:基礎 DP 品新學長的教學講義(涵蓋重要經典題型與題解) 台大資訊之芽:DP 概念、LIS/LCS、零錢/背包 三段講義 成大培訓 (單元 9):DP (背包/LIS/LCS) 有一些練習題 sa072686 的筆記 有很多習題與解答。 - 線上影片
影片 說明 台大陳縕儂老師:DP 概念 20 分鐘影片:以費氏數列解釋 DP 概念 台大陳縕儂老師:矩陣連乘 (區間 DP) 30 分鐘 - 演算法視覺化
第五週 - 最小生成樹
- 線上教材
教材 說明 師大碼賽客:MST 智鈞學長的教學講義與題解(本集也包含拓撲排序和尤拉路) 成大培訓 (單元 11):Graph 速成、有一些練習題 演算法筆記:生成樹 師大資工最有名的個人網站XD - 線上影片
影片 說明 資訊之芽:最小生成樹 30分鐘 - 演算法視覺化
第六週 - 最短路徑
- 線上教材
- 線上影片
影片 說明 台大陳縕儂老師:最短路 15分鐘簡介 台大陳縕儂老師:Bellman-Ford 30 分鐘介紹 台大陳縕儂老師:Dijkstra’s 20 分鐘介紹 - 演算法視覺化
演算法 說明 Dijkstra’s 搭配樹狀圖/陣列實作/串列實作:推薦! Dijkstra’s 搭配程式碼 Bellman-Ford 搭配程式碼 Floyd-Warshall 搭配樹狀圖/陣列實作/串列實作:推薦! Floyd-Warshall 搭配程式嗎