常见三种排序方法

//冒泡排序
function maopao(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-1-i;j++){
if(arr[j]<arr[i+1]){
var temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
return arr
}
//选择排序
function xuanze(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=i+1;j<arr.length;j++){
if(arr[i]>arr[j]){
var temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
}
return arr
}
//快排排序
/**
*1.先判断数组长度,如果数组长度小于等于1,直接返回该数组
*2.选取一个基准,来和其他元素进行比较,这里是选用数组的第一个元素作为基准
*3.定义两个空数组,用来存放比基准元素大newArrAfter和比基准元素小newArrBefore的元素
*4.将newArrAfter和newArrBefore还有arr[0]进行拼接并返回
*5.采用递归,来一次判断每一个数组,直到数组中元素只剩一个
*/
function fast(arr){
if (arr.length<=1) return arr;
var newArrBefore=[];
var newArrAfter=[];
for(var i=1;i<arr.length;i++){
arr[0]>arr[i]?newArrBefore.unshift(arr[i]):newArrAfter.push(arr[i])
}
return fast(newArrBefore).concat(arr[0],fast(newArrAfter))
}
arr=[19,20,38,4,57,18];
console.log(maopao(arr))
console.log(xuanze(arr))
console.log(fast(arr))

猜你喜欢

转载自www.cnblogs.com/guozhuang/p/10963154.html