概念
冒泡排序是一種交換排序。即兩兩比較待排序的關鍵字,並交換不滿足次序要求的那對數,直到整個表都滿足次序要求爲止。
算法思想
兩兩比較序列中數字,若兩者中前者比後者大,則交換兩者位置。
那麼這樣做的結果就是每一次交換後,最大的都會冒泡到了最後。
也就是說,第一次冒泡到最後的是第一大的數,第二次則是第二大,以此類推。
代碼實現
function bubleSort(arr){
if(!arr && !arr.length){return -1;}
for(let i=0,len=arr.length; i<len-1; i++){
let isChange = false;
for(let j=0; j<len-i; j++){
if(arr[j] > arr[j+1]){
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
isChange = true;
}
}
if(!isChange){return arr;}
}
return arr;
}