有关数组排序封装的函数
1,冒泡的方式进行排序。
默认为升序:
参数个数2个:
sortArr(arr,["asc"||"desc"])
参数1:需要我们排序的数组;
参数2:指定为升序或者降序(asc:升序,默认。desc:降序)
function sortArr(arrArgs, sortType = "asc") {
if (!Array.isArray(arrArgs) || !arrArgs.length != 0) {
return;
}
let arr = [...arrArgs];
for (let j = 1, all = arr.length; j < all; j++) {
for (let i = 0; i < arr.length; i++) {
if (sortType == "asc") {
if (arr[i] > arr[i + 1]) {
let tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
} else if (sortType == "desc") {
if (arr[i] < arr[i + 1]) {
let tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
}
}
return arr;
}
2,快速排序的方法
参数:arr:需要排序的数组,sort:true为降序,false为升序(默认)
function sortFast(arr,sort=false){ if (arr.length<=1){return arr} var midIndex=Math.floor(arr.length/2) var mid=arr.splice(midIndex,1)[0]; var left=[];var right=[]; for(var i=0;i<arr.length;i++){ if(arr[i]<=mid){ left.push(arr[i]) }else{ right.push(arr[i]) } } if(sort){ return sortFast(right,sort).concat([mid],sortFast(left,sort)) }else{ return sortFast(left,sort).concat([mid],sortFast(right,sort)) } }

浙公网安备 33010602011771号