1. 冒泡排序
var arr = [0, 4, 2, 1, 3];
var i = j = 0;
for(i; i<arr.length-1; i++){
for(j; j<=arr.length-i; j++){
var temp = 0;
// ">" 从小到大排序
// "<" 从大到小排序
if(arr[j] > arr[j+1]){
temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}
console.log(arr);
2.递归排序
function
quickSort(
arr) {
//如果数组<=1,则直接返回
if (
arr.
length <=
1) {
return
arr;
}
var
pivotIndex =
Math.
floor(
arr.
length /
2);
//找基准,并把基准从原数组删除
var
pivot =
arr.
splice(
pivotIndex,
1)[
0];
//定义容器左右数组
var
left = [];
var
right = [];
//比基准小的放在left,比基准大的放在right
for (
var
i =
0;
i <
arr.
length;
i++) {
if (
arr[
i] <=
pivot) {
left.
push(
arr[
i]);
}
else {
right.
push(
arr[
i]);
}
}
//递归,"..."将一个数组转为用逗号分隔的参数序列
return [...
quickSort(
left),
pivot, ...
quickSort(
right)];
}
console.
log(
quickSort([
0,
4,
2,
1,
3]));