iT邦幫忙

2021 iThome 鐵人賽

DAY 22
0
Modern Web

小白的從零開始食譜搜尋系統系列 第 22

JS中的排序法_上

  • 分享至 

  • twitterImage
  •  

在Day7時候有提到排序法的簡介,並且簡介常見的6個演算法,在Icebear學習5天JS語法之後,在今天和明天兩天利用node.js實做這些排序法


泡沫排序(BubbleSort)
運作方式 :

  1. 比較相鄰的元素。如果第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對。這步做完後,最後的元素會是最大的數。
  3. 針對所有的元素重複以上的步驟,除了最後一個。
  4. 持續每次對越來越少的元素重複上面的步驟,直到沒有任何一對數字需要比較
    這邊使用了雙層的迴圈,內層迴圈實作步驟 1、步驟 2 ;外層迴圈則實作步驟3 ,確保所有元素都能經過排序。
    執行過程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497ubcs6clHxG.png
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497HmvuLK1RUh.png

選擇排序(SelectionSort)
運作方式 :

  1. 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
  2. 然後,再從剩餘未排序元素中繼續尋找最小(大)元素,然後放到已排序序列的末尾。
  3. 以此類推,直到所有元素均排序完畢。
    我們掃描整個輸入數值,並且對於每個元素 - 我們在排序最後的數值中找到最小的數字。如果最小的數字不是未排序子數組中的第一個(不在它的位置),我們將它與未排序子數組的第一個元素交換。
    執行過程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/201404971hz2CzJyDv.png

https://ithelp.ithome.com.tw/upload/images/20211001/20140497zkotOzAzUg.png


插入排序(InsertionSort)
運作方式:

  1. 從第一個元素開始,該元素(A)可以認為已經被排序
  2. 取出下一個元素,在已經排序的元素序列中從後向前掃描
  3. 如果A大於新元素,將A移到下一位置
  4. 重複步驟3,直到找到已排序的元素小於或者等於新元素的位置(X)
  5. 將新元素插入到X後
    arr[j + 1] 的部份可能比較難懂一點點。當使用 j — 向下移動數組的長度時,j 變數正在遞減。當不再比較兩個數中較小的那個特定值時,for 循環停止 ; j 變數被保留,之後j+1 索引指的是臨時變量不再小於我們正在檢查值的位置。
    執行過程 :
    https://ithelp.ithome.com.tw/upload/images/20211001/20140497fYZ8rkCZjm.png
    https://ithelp.ithome.com.tw/upload/images/20211001/201404975Vo1rDJ5aN.png

上一篇
JS語法學習Day5
下一篇
JS中的排序法_下
系列文
小白的從零開始食譜搜尋系統30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言