iT邦幫忙

鐵人檔案

2023 iThome 鐵人賽
回列表
自我挑戰組

用python學習資料結構與演算法 學習筆記 系列

作為程式入門小白,想進一步了解資料結構與演算法。本次參賽會以udemy上的課程: The complete Data Structures and Algorithms Course in Python 為主,其餘書籍為輔來撰寫30天的閱讀筆記。

鐵人鍊成 | 共 30 篇文章 | 6 人訂閱 訂閱系列文 RSS系列文
DAY 21

圖(Graph)簡介

圖由vertices(or nodes)和連結nodes間的edges組成。以下是有關圖的一些名詞介紹: Vertices (vertex): 圖上的節點 E...

2023-10-06 ‧ 由 helloasiao 分享
DAY 22

拓樸排序(Topological Sort)

當今天遇到一個情況是,事件間是有依賴性/方向性(B事件發生前一定要A事件),譬如說排課系統,有些課會有需要預修的課(譬如說,要修電磁學前要修過微積分、線性代數、...

2023-10-07 ‧ 由 helloasiao 分享
DAY 23

單源最短路徑問題(BFS、Dijkstra's algorithm、Bellman Ford algorithm)

單源對短路徑問題(single source shortest path problem, sssp)為給一個vertex(called source),找到去...

2023-10-08 ‧ 由 helloasiao 分享
DAY 24

其他圖相關的演算法(Floyd Warshall, 最小生成樹: Kruskal, Prim)

接下來我們在這裡要介紹一些比較雜的演算法像是Floyd Warshall algorithm, minimum spanning tree(MST), Krus...

2023-10-09 ‧ 由 helloasiao 分享
DAY 25

貪婪演算法(Greedy Algorithm)

我們前面其實已經用了不少貪婪演算法(e.g. Prim’s, Kruskal algorithm, Dijkstra’s algorithm......),從前...

2023-10-10 ‧ 由 helloasiao 分享
DAY 26

Divide and conquer algorithm (分冶法)

分冶法將大問題分解成許多類似的小問題,然後再以遞迴的方式分別解決這些小問題,並把他們的解決方案合併起來得到原問題的解決方案。像我們之前學的merge sort和...

2023-10-11 ‧ 由 helloasiao 分享
DAY 27

動態規劃 (Dynamic programming)

動態規劃為一解決問題的方法,他將大問題分成小且有重疊的問題,然後將這些小問題的解儲存起來(可以是陣列或者是字典),由此避免重複計算,每當遇到一樣的問題,可以回去...

2023-10-12 ‧ 由 helloasiao 分享
DAY 28

回溯法(backtracking)

回溯法(backtracking)是一種用解決問題的演算法,它通常會窮舉不同的可能性,並在達到某條件時回退(backtrack)到達之前的狀態,接著繼續搜索。因...

2023-10-13 ‧ 由 helloasiao 分享
DAY 29

LeetCode 練習 I

那最後兩天,我們來做幾個LeetCode簡單的練習題,可以順便增加信心,其他大家自行去挑戰,解法有很多,其他人的方法有很大的機會會比我的好~:Linked Li...

2023-10-14 ‧ 由 helloasiao 分享
DAY 30

LeetCode 練習 II

最後一天,我們繼續做幾題相對簡單的LeetCode練習題吧!挑選的題目主要都是前面文章涵蓋的主題,如果有不熟的部分,可以回去看前面幾天的文章。然後答案沒有一定,...

2023-10-15 ‧ 由 helloasiao 分享