- 冒泡
function bubleSort(arr) {
const len = arr.length;
for(let i = len - 1; i > 1; i--) {
for(let j = 0; j < i; j++) {
if(arr[j] > arr[j + 1]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]];
}
}
}
return arr;
}
- 选择
function selectSort(arr) {
const len = arr.length;
for(let i = 0; i < len - 1; i++) {
for(let j = i; j < len; j++) {
if(arr[j] < arr[i]) {
[arr[i], arr[j]] = [arr[j], arr[i]];
}
}
}
return arr;
}
- 插入
function insertSort(arr) {
const len = arr.length;
// 外循环从1开始,默认arr[0]是有序段
for(let i = 1; i < len; i++ ) {
for(let j = i; j > 0; j--) {
if(arr[j] < arr[j - 1]) {
[arr[j], arr[j - 1]] = [arr[j - 1], arr[j]];
} else {
break;
}
}
}
return arr;
}
- 快排
function quickSort(arr) {
if(arr.length <= 1) {
return arr;
}
const left = [], right = [], current = arr.splice(0, 1);
for(let i = 0; i < arr.length; i++) {
if(arr[i] < current) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return quickSort(left).concat(current, quickSort(right))
}
网友评论