這倆天在瘋狂的補(bǔ)JS知識官辈,看到冒泡算法援岩,也沒看著網(wǎng)上的來就試著自己寫了一個稿茉。實現(xiàn)是沒什么問題锹锰,但是觀察本質(zhì)就有點難受,看到數(shù)組的交換動向讓我迷惑漓库,自己明明是想把最小的數(shù)往前排恃慧,看到數(shù)組的動向為啥是大的數(shù)先排到前面去了?米苹?糕伐?當(dāng)時確實是腦殼爆炸砰琢。
/**
* 這種算法的本質(zhì)就是找到數(shù)組中最大的那個數(shù)蘸嘶,看看有沒有比自己大的,如果有就把他換過來
* 可以理解為陪汽,我外層順換出來的這個下標(biāo)最適合誰占有训唱,由于置換過數(shù)字,所以中間出來的數(shù)據(jù)會讓人有點迷糊挚冤,心里就在想我的代碼不是找誰最小嗎况增?怎么最大的先跑前面去了。
*/
let arr = [222, 10, 20, 5, 3, 23, 54, 3];
function bubblingModeOne(arr) {
for (let i = 0; i < arr.length; i++) {
// console.log(arr)
for (let j = 0; j < arr.length; j++) {
// console.log(arr[i])
if (arr[i] < arr[j]) {
let sum = arr[i] + arr[j];
arr[i] = arr[j];
arr[j] = sum - arr[j];
}
// console.log(arr)
}
// console.log(arr)
// console.log("====")
}
return arr;
}
console.log(bubblingModeOne(arr));