数组排序之冒泡排序: 重写冒泡排序
/**
*
*
* 外层循环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;
}
复制代码