1.冒泡排序
function bubble(ary){
let temp=null;
for(let i=0;i<ary.length-1;i++){
for(let j=0;j<ary.length-1-i;j++){
if(ary[j]>ary[j+1]){
temp=ary[j];
ary[j]=ary[j+1];
ary[j+1]=temp;
}
}
}
return ary;
}
let ary = [12,8,24,16,1];
ary=bubble(ary);
console.log(ary);
2.插入排序
function insert(ary){
let handle=[];
handle.push(ary[0]);
for(let i=1;i<ary.length;i++){
let A=ary[i];
for(let j=handle.length-1;j>=0;j--){
let B=handle[j];
if(A>B){
handle.splice(j+1,0,A);
break;
}
if(j===0){
handle.unshift(A);
}
}
}
return handle;
}
let ary = [12,8,24,16,1];
ary=insert(ary);
console.log(ary);
3.快速排序
function quick(ary){
if(ary.length<=1){
return ary;
}
let middleIndex=Math.floor(ary.length/2);
let middleValue=ary.splice(middleIndex,1)[0];
let aryLeft=[],
aryRight=[];
for(let i=0;i<ary.length;i++){
let item=ary[i];
item<middleValue?aryLeft.push(item):aryRight.push(item);
}
return quick(aryLeft).concat(middleValue,quick(aryRight));
}
let ary = [12,8,15,16,1,24];
ary=quick(ary);
console.log(ary);