<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>sort</title>
</head>
<body>
<script type="text/javascript">
//冒泡排序
// function sort(arr){
// for(let i=0;i<arr.length-1;i++){
// for(let j=0;j<arr.length-i-1;j++){
// if(arr[j]>arr[j+1]){
// let temp=arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=temp;
// }
// }
// }
// return arr;
// }
// let arr=[3,4,22,56,12,1];
// let arr1=sort(arr);
// console.log(arr1);
//选择排序
// function select(arr){
// for(let i=0;i<arr.length-1;i++){
// let min=arr[i];
// for(let j=i+1;j<arr.length;j++){
// if(arr[j]<min){
// let temp=arr[j];
// arr[j]=min;
// min=temp;
// arr[i]=min;
// }
// }
// }
// return arr;
// }
// let arr=[3,1,22,56,12,4,100,7];
// let arr1=select(arr);
// console.log(arr1);
//插入排序
// function insert(arr){
// for(let i=1;i<arr.length;i++){
// var key=arr[i];
// var j=i=1;
// while(j>0 && arr[j]>key){
// arr[j+1]=arr[j];
// j=j-1;
// }
// arr[j+1]=key;
// }
// return arr;
// }
// let arr=[3,1,22,56,12,4,100,7];
// let arr1=insert(arr);
// console.log(arr1);
function mergesort(arr){
if(arr.length<2) return arr;
let mid=Math.floor(arr.length/2);
var left=arr.slice(0,mid);
var right=arr.slice(0);
return merge(mergesort(left),mergesort(right));
function merge(left,right){
var result=[];
while(left.length && right.length){
if(left[0]<=right[0]){
result.push(left.shift(0));
}
else
result.push(right.shift(0));
}
while(left.length){result.push(left.shift(0));}
while(right.length){result.push(right.shift(0));}
}
}
let arr=[3,1,22,56,12,4,100,7];
let arr1=mergesort(arr);
console.log(arr1);
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>sort</title>
</head>
<body>
<script type="text/javascript">
//冒泡排序
// function sort(arr){
// for(let i=0;i<arr.length-1;i++){
// for(let j=0;j<arr.length-i-1;j++){
// if(arr[j]>arr[j+1]){
// let temp=arr[j];
// arr[j]=arr[j+1];
// arr[j+1]=temp;
// }
// }
// }
// return arr;
// }
// let arr=[3,4,22,56,12,1];
// let arr1=sort(arr);
// console.log(arr1);
//选择排序
// function select(arr){
// for(let i=0;i<arr.length-1;i++){
// let min=arr[i];
// for(let j=i+1;j<arr.length;j++){
// if(arr[j]<min){
// let temp=arr[j];
// arr[j]=min;
// min=temp;
// arr[i]=min;
// }
// }
// }
// return arr;
// }
// let arr=[3,1,22,56,12,4,100,7];
// let arr1=select(arr);
// console.log(arr1);
//插入排序
// function insert(arr){
// var key;
// for(let i=1;i<arr.length;i++){
// key=arr[i];
// while(i-1>=0 && arr[i-1]>key){
// arr[i]=arr[i-1];
// i--;
// }
// arr[i]=key;
// }
// return arr;
// }
// let arr=[3,1,22,56,12,4,100,7];
// let arr1=insert(arr);
// console.log(arr1);
//快速排序
// function quicksort(arr){
// if(arr.length<2) return arr;
// let mid=Math.floor(arr.length/2);
// let middle=arr.splice(mid,1);
// var left=[];
// var right=[];
// for(let i=0;i<arr.length;i++){
// if(arr[i]<=middle){
// left.push(arr[i]);
// }
// else
// right.push(arr[i]);
// }
// return quicksort(left).concat(middle,quicksort(right));
// }
// let arr=[3,1,22,56,12,4,100,7];
// let arr1=quicksort(arr);
// console.log(arr1);
//归并排序
function mergesort(arr){
if(arr.length<2) return arr;
let mid=Math.floor(arr.length/2);
var left=arr.slice(0,mid);
var right=arr.slice(mid);
return merge(mergesort(left),mergesort(right));
}
function merge(left,right){
var result=[];
while(left.length>0 && right.length>0){
if(left[0]<=right[0]){
result.push(left.shift());
}
else
result.push(right.shift());
}
while(left.length){result.push(left.shift());}
while(right.length){result.push(right.shift());}
return result.concat(left).concat(right);
}
let arr=[3,1,22,56,12,4,100,7];
let arr1=mergesort(arr);
console.log(arr1);
</script>
</body>
</html>