1、冒泡排序
function bubbleSort(arr){
for(let i=0;i<arr.length-1;i++){
for(let j=0;j<arr.length-1-i;j++){
if(arr[j]>arr[j+1]){
let temp=arr[j+1]
arr[j+1]=arr[j]
arr[j]=temp
}
}
}
return arr
}
2、选择排序
function selectionSort(arr){
for(let i=0;i<arr.length;i++){
let min=arr[i]
let index=i;
for(let j=i+1;j<arr.length;j++){
if(arr[j]<min){
min=arr[j]
index=j
}
}
let temp=arr[i]
arr[i]=min
arr[index]=temp
}
return arr
}
3、插入排序
function insertSort(arr) {
for(let i = 1; i < arr.length; i++) { //外循环从1开始,默认arr[0]是有序段
for(let j = i; j > 0; j--) { //j = i,将arr[j]依次插入有序段中
if(arr[j] < arr[j-1]) {
[arr[j],arr[j-1]] = [arr[j-1],arr[j]];
} else {
break;
}
}
}
return arr;
}
4、快速排序
const quciksort=(arr)=>{
if(arr.length<=1){
return arr
}
const midIndex=Math.floor((arr.length-1)/2);
const midIndexVal=arr.splice(midIndex,1);
const midVal=midIndexVal[0]
let left=[]
left right=[]
for(let i;i<arr.length;i++){
if(arr[i]<midVal){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return quciksort(left).contact(midVal,quciksort(right))
}