iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

30 天的資料結構與演算法之旅 系列

「30 天的資料結構與演算法之旅」將以 JavaScript 為主要實作語言,系列內容以 Udemy 的 Master the Coding Interview: Data Structures + Algorithms 課程為主,並搭配其他網路資源,帶領大家逐步認識常見的資料結構與演算法。從 Big O、Array、Hash Table、Linked List 等概念出發,進而探索 Sorting、Tree、Graph 等主題,並試著連結日常開發中可能接觸到的實際應用。希望透過這段旅程,不僅認識不同的資料結構與演算法,也能理解它們之間的取捨,在日常開發中找到理解程式的新角度。

參賽天數 24 天 | 共 24 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 11

[Day 11] Stack

前言 今天要介紹的是 Stack~ 先看一段前幾篇一直在用的訂單資料,這次多記了每張訂單買了哪些東西: const orders = { 'A-1003':...

2026-09-25 ‧ 由 Monica 分享
DAY 12

[Day 12] Queue

前言 昨天的 Stack 把最後放進去的先拿出來,今天要介紹的 Queue 則是完全相反的那一種:最先放進去的最先拿出來。 先來看一個情境~假設辦公室裡有一台...

2026-09-26 ‧ 由 Monica 分享
DAY 13

[Day 13] Recursion

前言 今天要介紹的是遞迴 (Recursion)~ 昨天結尾提到,遞迴就是讓函式呼叫自己,每呼叫一次,call stack 就會再疊上一層。而這個東西其實更早...

2026-09-27 ‧ 由 Monica 分享
DAY 14

[Day 14] 排序演算法 (1):Bubble Sort 與 Selection Sort

前言 大部分語言都有內建的排序方法,JavaScript 也不例外,呼叫 array.sort() 以後,就能把陣列排好,那為什麼還要了解排序演算法呢? 其中...

2026-09-28 ‧ 由 Monica 分享
DAY 15

[Day 15] 排序演算法 (2):Insertion Sort

前言 昨天有用三種輸入去跑 Bubble Sort 和 Selection Sort,並整理出各自的執行次數,其中,在已排序那列可看到加了 early exi...

2026-09-29 ‧ 由 Monica 分享
DAY 16

[Day 16] 排序演算法 (3):Merge Sort

前言 昨天的 Insertion Sort 是一個成本取決於輸入資料形狀的排序演算法,資料越接近已排序狀態,它花費的成本就越少。可是實務上不一定知道資料長什麼...

2026-09-30 ‧ 由 Monica 分享
DAY 17

[Day 17] 排序演算法 (4):Quick Sort

前言 昨天的 Merge Sort 用分而治之確保每次執行都是 O(N log N),代價是每次合併都要一個新陣列來裝結果,額外空間是 O(N)。那如果新陣列...

2026-10-01 ‧ 由 Monica 分享
DAY 18

[Day 18] 排序演算法 (5):如何選擇排序演算法?

前言 昨天有提到 Merge Sort 和 Quick Sort 的取捨,結論是兩個各有好壞。其實 Bubble、Selection、Insertion、Me...

2026-10-02 ‧ 由 Monica 分享
DAY 19

[Day 19] Tree

前言 今天要介紹的是 Tree~ 排序的部分告一段落,目前為止介紹的資料結構有個共同點:不管是 Array、Linked List,還是後來的 Stack 與...

2026-10-03 ‧ 由 Monica 分享
DAY 20

[Day 20] Binary Search Tree (1):維持動態排序

前言 昨天用 inorder 遍歷主例那棵 Tree 時,輸出的是 1, 4, 6, 9, 15, 20, 170,剛好由小到大。當時只說這不是巧合,這裡面有...

2026-10-04 ‧ 由 Monica 分享