參考網站 https://visualgo.net/
冒泡排序:
前后兩個數兩兩進行比較
前 < 后, 則后面一個繼續與下一個比較
前 > 后,則交換位置,再與下一個比較
第一輪比較完成可以確定最后一個數字的位置
再進行第二輪來確定倒數第二個的位置
直到排序完成
arr.length = 5
關于 j < arr.length-i-1,由于我們從第一個從0開始,那么我們看第0輪,j
j < 5-0-1也就是 j < 4 也就是說 j 最大取3 ,arr[3]與arr[3+1]進行比較
| 輪數/i | 0 | 1 | 2 | 3 | 4 | 比較次數/arr.length-i-1 |
| 0 | 5 | 4 | 3 | 2 | 1 | 4 |
| 1 | 4 | 3 | 2 | 1 | 5 | 3 |
| 2 | 3 | 2 | 1 | 4 | 5 | 2 |
| 3 | 2 | 1 | 3 | 4 | 5 | 1 |
| 1 | 2 | 3 | 4 | 5 |
注意可以每一輪都比較4次,只是演算法比較占記憶體
let arr = [5,4,3,2,1]
for(let i = 0; i < arr.length; i++){ // 比較的輪數
for(let j = 0; j < arr.length - i -1; j++){ //比較的組數
if(arr[j]>arr[j+1]){
let a = arr[j]
arr[j] = arr[j+1]
arr[j+1] = a
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/39159.html
標籤:JavaScript
上一篇:JS資料結構與演算法 - 排序(冒泡、選擇、插入、歸并、快排)
下一篇:35.陣列.選擇排序
