iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
自我挑戰組

透過JavaScript學習演算法與資料結構 系列

我本身是個半路出家的Node.js後端工程師,在演算法與資料結構上相當陌生,為此,想回過頭來想透過JavaScript打好基本功。

參賽天數 27 天 | 共 30 篇文章 | 29 人訂閱 訂閱系列文 RSS系列文
DAY 1

JavaScript 演算法、資料結構第一章(目錄&簡介)

前言 希望透過這系列文章,可以讓自己的演算法、資料結構的基礎知識可以更扎實,也希望這系列文章可以幫助到JavaScript工程師,讓自己寫的程式效率能更好。在...

2019-09-02 ‧ 由 kk 分享
DAY 2

桶子排序法(Bucket Sort)

桶子排序法,在排序前,我們可以先準備數個桶子,而資料就像一個一個的球,每個桶子裝球數有限且區間固定,接下來就把球依照每個桶子不同的區間去做分類放置,如下圖。...

2019-09-03 ‧ 由 kk 分享
DAY 3

氣泡排序法(Bubble Sort)

氣泡排序法,顧名思義它在排序的過程,值的排序過程會有點像泡泡上升一樣。 假設有一陣列[7,5,1,20,8]第一輪排序為[5,7,1,20,8]第二輪排序為...

2019-09-04 ‧ 由 kk 分享
DAY 4

選擇排序法(Selection Sort)

選擇排序法,主要精神在迴圈找尋選擇最小值,然後將最小值與第一個值交換。 假設有一陣列[7,5,1,20,8],並假設最小值是第一個數值(7),第一個數值就與...

2019-09-05 ‧ 由 kk 分享
DAY 5

插入排序(Insertion Sort)

插入排序的主要精神在迴圈抓出每個值,並且向陣列左方的每個值逐一比較大小,如果比較小則將值左右交換,如此最小值會被插入在最前面。 可以先看以下的觀念影片 完整...

2019-09-06 ‧ 由 kk 分享
DAY 6

希爾排序法(Shell Sort)

希爾排序法其實是優化版的插入排序法,插入排序法只能跟左方一個數值比對,而希爾排序法則是先取一個Gap值作為選取左方數值的間隔值,然後進行比對排序,而Gap在每...

2019-09-07 ‧ 由 kk 分享
DAY 7

合併排序法(Merge Sort)

主要是將陣列一分為二區分成左右陣列,直到只有一個元素才停止,接著逐一將左右陣列的第一個值互相比大小,小的值放到新陣列再把大的值放在它的後面,新的陣列完成後再跟...

2019-09-08 ‧ 由 kk 分享
DAY 8

快速排序法(Quick Sort)

快速排序法透過取一個pivot值,將陣列分成左右兩邊,然後開始遞迴地將值與pivot比大小,小的放左邊、大的放右邊,直到比到最後一個。 先看一下這段影片 我...

2019-09-09 ‧ 由 kk 分享
DAY 9

堆積排序法(Heap Sort)

這次我們選擇Max Heap來演示,而重點在先構建好Max Heap然後交換頂層節點值與底層節點值。 先看這段影片 程式碼如下: function maxH...

2019-09-10 ‧ 由 kk 分享
DAY 10

計數排序法(Counting Sort)

直接看下方這張圖 作法:步驟一:計算陣列值的範圍,確定計數陣列count的長度,計數陣列的長度len=max-min+1 步驟二:遍歷原陣列,填寫計數陣列,原陣...

2019-09-11 ‧ 由 kk 分享