陣列排序之氣泡排序: 重寫氣泡排序
/**
*
*
* 外層迴圈outer:控制比較躺數;控制條件arr.length>=2;
* 內層迴圈inner:進行冒泡,每次冒泡,都將當前比較趟中的最大值,沉澱到最後:arr[outer-1];
* 內層迴圈每次從arr[0],開始向後比較,每一趟排序要比較次數outer-1;
* 如果arr[inner]>arr[inner+1];則進行交換位置;
使用ES6中的解構賦值:
交換位置
[arr[inner],arr[inner+1]]=[arr[inner+1],arr[inner]]
* [4,3,2,1]
* */
Array.prototype.bubbleSort=function(){
let arr=this,len=arr.length;
for(let outer=len;outer>=2;outer--){
for(let inner=0;inner<outer-1;inner++){
if(arr[inner]>arr[inner+1]){
[arr[inner+1],arr[inner]]=[arr[inner],arr[inner+1]]
}
}
}
return arr;
}
複製程式碼