排序算法
冒泡
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))

浙公网安备 33010602011771号