iT邦幫忙

鐵人檔案

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

【用 JS 學演算法】前端工程師學徒 系列

多年 SEO 專案經驗,在生活中有許多角色,其中一個是 "前端工程師學徒",希望透過 30 天自我挑戰成長,學會用 javaScript 練習演算法跟資料結構。

參賽天數 9 天 | 共 9 篇文章 | 3 人訂閱 訂閱系列文 RSS系列文
DAY 1

【Day 01】認識資料結構 Data Structure ( 使用 JavaScript )

一、什麼是資料結構 ? 當我們撰寫程式時,會宣告變數來存放資料,這些資料會儲存在記憶體中,在我們需要時可以拿出來使用。這邊我們可以思考兩點: 要儲存的資料內容...

2021-09-16 ‧ 由 tedkuo 分享
DAY 2

【Day 02】認識演算法 Algorithm ( 使用 JavaScript )

一、什麼是演算法 ( Algorithm ) ? 演算法是一組 step by step 用來解決問題、完成任務的指令,它的定義: 在有限時間內 在有限步驟內...

2021-09-17 ‧ 由 tedkuo 分享
DAY 3

【Day 03】如何評估演算法的效率? Big O 與時間複雜度

一、如何判斷演算法的效能 ? 當同樣的問題,可以用不一樣的演算法來解決時,要如何判斷哪個演算法比較好 ?可以使用以下兩個評量指標: 花的時間少,所需步驟少 (...

2021-09-18 ‧ 由 tedkuo 分享
DAY 4

【Day 04】LeetCode:Fizz Buzz ( 用 JavaScript 學演算法 )

我們透過 LeetCode #412 Fizz Buzz 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數 從 1 到 n,依序判斷...

2021-09-19 ‧ 由 tedkuo 分享
DAY 5

【Day 05】LeetCode:Plus One ( 用 JavaScript 學演算法 )

我們繼續透過 LeetCode #66 Plus One 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個正整數組成,且從大到小排序好的陣...

2021-09-20 ‧ 由 tedkuo 分享
DAY 6

【Day 06】LeetCode:Two Sum ( 用 JavaScript 學演算法 )

我們繼續透過 LeetCode #1 Two Sum 來實際感受解決問題的過程 ( 題目連結 ) 一、理解題目 輸入:一個 nums[] 和 target 找...

2021-09-21 ‧ 由 tedkuo 分享
DAY 7

【Day 07】Sorting:Insertion Sort 插入排序法 ( 用 JavaScript 學演算法 )

插入排序法是將陣列中未排序的元素,逐一與排序好的資料作比較。它的時間複雜度是 (O(n^2))。 一、步驟觀察 標記第一個元素作為已排序的部分 遍歷未排...

2021-09-22 ‧ 由 tedkuo 分享
DAY 8

【Day 08】Sorting:Selection Sort 選擇排序法 ( 用 JavaScript 學演算法 )

選擇排序法的概念是,將陣列分為兩個部分,每次掃描未排序的部分時,從數列中拿出最小的數,丟到另一邊,最後就會得到一個完成排序的陣列。它的時間複雜度是 O(n^2...

2021-09-23 ‧ 由 tedkuo 分享
DAY 9

【Day 09】Sorting:Bubble Sort 氣泡排序法 ( 用 JavaScript 學演算法 )

氣泡排序法是,從第一個元素開始,和相鄰數字比大小,若有需要就交換位置。因此也可稱為交換排序法。它的時間複雜度是 O(n^2)。 一、步驟觀察 遍歷未排序...

2021-09-24 ‧ 由 tedkuo 分享