let arr1 = [8,3,9,14,32,2,1,5] // 归并排序 function mergeSort(arr){ if(arr.length<2)return arr let mid = Math.floor(arr.length/2) let left = arr.slice(0,mid) let right = arr.slice(mid) return merge(mergeSort(left),mergeSort(right)) } function merge(left,right){ let result = [] while(left.length && right.length){ if(left[0]<right[0]){ result.push(left.shift()) }else{ result.push(right.shift()) } } return result.concat(left,right) } // 快速排序 function quickSort(arr){ if(arr.length<2)return arr let mid = Math.floor(arr.length/2) let pivot = arr.splice(mid,1)[0] let left = [],right = [] for(let v of arr){ v<pivot ? left.push(v) : right.push(v) } return quickSort(left).concat(pivot,quickSort(right)) }
标签:function,mergeSort,归并,arr,js,排序 From: https://www.cnblogs.com/liangtang/p/17969425