冒泡排序
function bubbleSort (data) {
// 控制循环轮数
for (var i=0; i<=data.length; i++) {
for(var j=0; j<=data.length-i; j++) {
// 每一轮都比较当前这一轮数组中前后两个元素的大小
if (data[j] > data[j+1]) {
// 如果前一个值大于后一个值,则将两个值调换位置
var temp = data[j];
data[j] = data[j+1];
data[j+1] = temp;
}
}
}
}
快速排序
function quickSort(data) {
if(data.length <= 1) {
return data;
}
// 取数组中间的一个值
var middleIndex = Math.floor(data.length / 2);
var middleValue = data.splice(middleIndex, 1)[0];
// 分别定义大于这个值和小于这个值的数组
var left = [], right = [];
for (var i=0; i<data.length; i++) {
// 小于中间值放到左边, 大于中间值放到右边
if (data[i] < middleValue) {
left.push(data[i]);
} else {
right.push(data[i]);
}
}
// 递归排序 left,right 两个数组,然后链接三个值
return quickSort(left).concat([middleValue], quickSort(right));
}