iT邦幫忙

鐵人檔案

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

每日攝取一點資料結構和演算法 系列

近期剛好在學習資料結構和演算法 ,畢竟看教學是沒有壓力的,但要產出文章就不一樣了(笑),因此這一系列的文章會比較像我的學習筆記,藉由鐵人賽來促使自己整理這些學過的內容,並且訓練自己如何用比較簡單易懂的方式將這些抽象的概念表達出來。

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

Day11:[資料結構]Binary Tree - 二元樹

想必大家在刷leetcode時候,刷到特定的題目的時候都曾經看過這樣的圖片,這就是Binary tree,但在認識Binary tree之前,讓我們先來認識t...

2021-09-11 ‧ 由 Lieutenant 分享
DAY 12

Day12:[資料結構]Binary Tree -  Traversal

Traversal翻譯成中文就是遍歷的意思,如果要遍歷tree的每個節點的話,會有兩種方式,Breadth-First Tree Traversal和Dept...

2021-09-12 ‧ 由 Lieutenant 分享
DAY 13

Day13:[解題技巧]Two pointers -  雙指針

雙指針算是一個解題蠻常用的小技巧,雙指針指的是用兩個指針對整個資料做遍歷,而雙指針又依照移動的方向性,分為對撞指針(反方向)和快慢指針(同方向)。 對撞指針 兩...

2021-09-13 ‧ 由 Lieutenant 分享
DAY 14

Day14:[解題技巧]Recursive - 遞迴

簡單來說就是函式自己呼叫自己的狀況,遞迴由兩部分組成 Recursive Case(遞迴情況) - 當函式呼叫自己本身的情況 Base Case(基本狀況) ...

2021-09-14 ‧ 由 Lieutenant 分享
DAY 15

Day15:[搜尋演算法]Linear Search - 線性搜尋法

線性搜尋法可以說是最容易理解的搜尋演算法了,相信大家都有過類似的經驗,在圖書館裡想在書架上找一本書"湯姆歷險記",假如書本都是未經排序的,...

2021-09-15 ‧ 由 Lieutenant 分享
DAY 16

Day16:[搜尋演算法]Binary search - 二分搜尋法

利用將資料切一半的方式來做搜尋,舉例來說,如果要從數字1–100猜終極密碼,如果採用線性搜尋法就是一個一個問?是1嗎?是2嗎?…依序猜下去,很不幸的數字剛好是...

2021-09-16 ‧ 由 Lieutenant 分享
DAY 17

Day17:[排序演算法]Selection Sort - 選擇排序法

從今天開始要來理解排序演算法了!簡單來說就是經過一連串的步驟將數字由小排到大或是由大排到小的演算法,下圖列出幾種常見的排序演算法,像是插入排序法、氣泡排序法、合...

2021-09-17 ‧ 由 Lieutenant 分享
DAY 18

Day18:[排序演算法]Selection Sort - 選擇排序法

其實插入排序法就很像平時我們在玩撲克牌時整理牌組的行為,將撲克牌依照大小插入對應的位置,插入排序法的流程是從第2個位置開始與左邊的數字(位置1)比較,然後就依循...

2021-09-18 ‧ 由 Lieutenant 分享
DAY 19

Day19:[排序演算法]Bubble Sort - 氣泡排序法

bubble sort的概念就是像泡泡一樣 ,越大的數字會漸漸的往右邊浮 比較相鄰的元素 ,兩兩比大小, 如果前面的數字大於後面的數字就交換順序,一路把最...

2021-09-19 ‧ 由 Lieutenant 分享
DAY 20

Day20:[排序演算法]Selection Sort - 選擇排序法

在了解快速排序法的概念之前要先理解partition演算法,不過單用文字敘述還是蠻抽象的,所以搭配示意圖來做說明,假如現在有個陣列[2, 6, 3, 9, 1,...

2021-09-20 ‧ 由 Lieutenant 分享