Algorithm in Javascript Bubble Sort

冒泡排序
理解:
冒泡排序算法的流程以下:javascript

  1. 比較相鄰的元素。 若是第一個比第二個大,就交換他們兩個。
  2. 對每一對相鄰元素做一樣的工做,從開始第一對到結尾的最後一對。 在這一點,最後的元素應該會是最大的數。
  3. 針對全部的元素重複以上的步驟,除了最後一個。
  4. 持續每次對愈來愈少的元素重複上面的步驟,直到沒有任何一對數字須要比較。

核心思想:
比較兩個相鄰位置若是位置錯誤就交換
圖解:
html


Comparison Sorting Visualization點擊連接後選擇Bubble Sortjava

代碼實現:算法

function bubbleSort (arr) {
  let len = arr.length
  // 經過交換每次選出最大的放大哦最後,排到第二位時候一次交換完成,
  // 因此排多少次是固定的 len - 1
  for (let i = 1; i < len; i++) {
    // 每次把最大的數推到最後,最後排序已經固定了,沒有必要再排
    for (let j = 1; j <= len - i; j++) {
      if (arr[j] < arr[j - 1]) {
        [arr[j], arr[j - 1]] = [arr[j - 1], arr[j]]
      }
    }
  }
  return arr
}
console.log(bubbleSort([1,3,9,8,7,2]))複製代碼

番外篇

學習算法遇遇到的好的資料
一個不錯的博客 bubkoo.com/
算法可視化的網站Data Structure Visualization學習

相關文章
相關標籤/搜索