<!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>