// 冒泡排序
function bubble(arr) {
for(var i=0; i<arr.length; i++) {
for(var j=0; j<i; j++) {
if (arr[j]>arr[j+1]) {
var tmp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tmp;
}
}
}
return arr;
}
// 插入算法
function insertion(arr) {
for (var i = 1; i < arr.length; i++) {
for (var j = i - 1; j > 0; j--) {
if(arr[j]>arr[j+1]) {
var tmp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = tmp
}
}
}
return arr;
}
// 选择排序
function selection(arr) {
for(var i=0; i<arr.length; i++) {
for (var j = i+1; j<arr.length; j++) {
if (arr[i] > arr[j]) {
var tmp = arr[i]
arr[i] = arr[j]
arr[j] = tmp
}
}
}
return arr;
}
// 二分排序(递归)
function merge(arr) {
if(arr.length<=1) return arr;
var middle = arr.splice([arr.length >> 1], 1);
var left = [];
var right = [];
for(var i= 0; i<arr.length; i++) {
if (arr[i]<=middle) {
left.push(arr[i]);
} else {
right.push(arr[i]);
}
}
return merge(left).concat(middle, merge(right))
}