iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

刷題也算一種電競吧:演算法與資料結構 系列

本系列將會介紹基本與常見的演算法與資料結構,並使用 JavaScript 搭配練習一步步實作。
因筆者也是轉行至軟體工程師的行業,在 CS 相關基礎知識比較薄弱因此工作之後的進修特別著重補強這些知識。
本系列以筆者角度用通俗易懂方式講解,希望能讓讀者更容易理解,也藉由撰寫文章加強自身對於這些知識的理解與練習文筆。
最後希望讀者都能夠學以致用,遇到題目都能輕鬆開墮!

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

Day 10 還敢下來啊 - Bubble Sort

一種排序資料的方式,實務上不太常使用,除了某些特定情境。相對於其他排序方式,Bubble Sort 效能較差。 儘管如此,作為基礎中的基礎,最好還是要理解其概念...

2022-09-26 ‧ 由 jason71708 分享
DAY 12

Day 11 選我選我選我選我 - Selection Sort

Selection Sort 實作上是遍歷一次陣列,找出最小值,並將最小值與陣列的第一個值交換,以此類推,再遍歷一次陣列 (先前排序好的位置可以略過) 找出最小...

2022-09-27 ‧ 由 jason71708 分享
DAY 13

Day 12 我的回合,抽卡!!! - Insertion Sort

從第二個元素開始,往前比對,如果比前一個元素小,則交換位置,以此類推。 以 [30, 5, 1, 31, 10, 9, 2, 3, 4, 8, 7, 6] 來說...

2022-09-28 ‧ 由 jason71708 分享
DAY 14

Day 13 只會往前絕不後退 - Singly Linked List

Linked List 是一種資料結構,由一個個節點 (Node) 鏈結起來組成,本身僅存有 Head Node 和 Tail Node 以及總節點數 (len...

2022-09-29 ‧ 由 jason71708 分享
DAY 15

Day 14 左右開通 - Doubly Linked List

Singly Linked List 與 Doubly Linked List 差別在 Node 的指標一個只有下一個節點,另個有存上下兩個節點。 Doubly...

2022-09-30 ‧ 由 jason71708 分享
DAY 16

Day 15 先進後出 - Stack

Stack 是一種 LIFO (Last In First Out) 資料結構 最後一個加入的元素,會被第一個移除。 可應用在回復上一步的功能,在操作繪圖軟體時...

2022-10-01 ‧ 由 jason71708 分享
DAY 17

Day 16 先進先出 - Queue

Queue 是一種 FIFO (First In First Out) 資料結構。 第一個加入的元素,會被第一個移除。 可應用在排隊等待處理的功能,像是對戰遊戲...

2022-10-02 ‧ 由 jason71708 分享
DAY 18

Day 17 切出去合進來 升職發大財 - Merge Sort

Merge Sort 是一種透過切分資料再一一合併的排序演算法。 Merge Sort 有使用到 Divide and Conquer 與 Recursion...

2022-10-03 ‧ 由 jason71708 分享
DAY 19

Day 18 快還要更快 - Quick Sort

Quick Sort 使用基準值 (pivot) 比對排序,並透過 Recursion 的技巧,不斷將每個元素放到正確的位置上。 第一步是從陣列中取出一個數字當...

2022-10-04 ‧ 由 jason71708 分享
DAY 20

Day 19 排序新理解 - Radix Sort

在這篇之前的排序法都可以用在任何可以比較的資料上,例如一個含有帳戶資料的陣列,按照每個帳戶的 ID 、更新時間、名字、帳戶餘額等等來排序。但 Radix Sor...

2022-10-05 ‧ 由 jason71708 分享