前言 希望透過這系列文章,可以讓自己的演算法、資料結構的基礎知識可以更扎實,也希望這系列文章可以幫助到JavaScript工程師,讓自己寫的程式效率能更好。在...
桶子排序法,在排序前,我們可以先準備數個桶子,而資料就像一個一個的球,每個桶子裝球數有限且區間固定,接下來就把球依照每個桶子不同的區間去做分類放置,如下圖。...
氣泡排序法,顧名思義它在排序的過程,值的排序過程會有點像泡泡上升一樣。 假設有一陣列[7,5,1,20,8]第一輪排序為[5,7,1,20,8]第二輪排序為...
選擇排序法,主要精神在迴圈找尋選擇最小值,然後將最小值與第一個值交換。 假設有一陣列[7,5,1,20,8],並假設最小值是第一個數值(7),第一個數值就與...
插入排序的主要精神在迴圈抓出每個值,並且向陣列左方的每個值逐一比較大小,如果比較小則將值左右交換,如此最小值會被插入在最前面。 可以先看以下的觀念影片 完整...
希爾排序法其實是優化版的插入排序法,插入排序法只能跟左方一個數值比對,而希爾排序法則是先取一個Gap值作為選取左方數值的間隔值,然後進行比對排序,而Gap在每...
主要是將陣列一分為二區分成左右陣列,直到只有一個元素才停止,接著逐一將左右陣列的第一個值互相比大小,小的值放到新陣列再把大的值放在它的後面,新的陣列完成後再跟...
快速排序法透過取一個pivot值,將陣列分成左右兩邊,然後開始遞迴地將值與pivot比大小,小的放左邊、大的放右邊,直到比到最後一個。 先看一下這段影片 我...
這次我們選擇Max Heap來演示,而重點在先構建好Max Heap然後交換頂層節點值與底層節點值。 先看這段影片 程式碼如下: function maxH...
直接看下方這張圖 作法:步驟一:計算陣列值的範圍,確定計數陣列count的長度,計數陣列的長度len=max-min+1 步驟二:遍歷原陣列,填寫計數陣列,原陣...