冒泡
var arr = [1,4,5,2,1,7,6,8,3] for (var i=0; i<arr.length; i++) { for(var j=0; j<arr.length-i-1; j++) { if(arr[j] > arr[j+1]) { var flag = arr[j] arr[j] = arr[j+1] arr[j+1] = flag } } }
归并(最优)
//先拆分,在合并 //拆分为不可在拆分时,再合并 var arr = [55,3,5,7,2,24,587,654,123,15,1,51,321,654,5,12,2,15,1,2,21] //拆分 function mergeSort(arr) { if(arr.length==1) { return arr }; let middle = Math.floor(arr.length/2); let left = arr.slice(0,middle); let right = arr.slice(middle); return merge(mergeSort(left),mergeSort(right)); } //合并 function merge(left,right) { var res = [] while (left.length && right.length) { if(left[0]>right[0]) { res.push(right.shift()); }else { res.push(left.shift()); } } return res.concat(left).concat(right) } console.log(mergeSort(arr))