冒泡排序
理解:
冒泡排序算法的流程以下:javascript
核心思想:
比較兩個相鄰位置若是位置錯誤就交換
圖解:
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學習