排序算法
- 冒泡排序
冒泡排序只会操作相邻的两个数据,每次冒泡操作都会将相邻的两个元素进行比较,一次冒泡会让至少一个元素移动到它应该在的位置,重复 n 次,就完成了 n 个数据的排序工作。
function bubbleSort(arr) {
for (let i = 1; i < arr.length; i++) {
for (let j = i; j > 0; j--) {
if (arr[j] < arr[j - 1]) {
[arr[j - 1], arr[j]] = [arr[j], arr[j - 1]];
}
}
}
console.log(arr);
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
- 快速排序
function quickSort(arr) {
if (arr.length <= 1) return arr;
let right = [],
left = [],
keys = arr.shift();
for (let value of arr) {
if (value > keys) {
right.push(value);
} else {
left.push(value);
}
}
return quickSort(left).concat(keys, quickSort(right));
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
编辑 (opens new window)
上次更新: 2021/08/22, 01:09:59