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)) } }