冒泡排序
原理
- 和右边的人比较,不断和右边交换,就可以把最大或者最小的冒泡到最右边
- 如此重复 len 次,即可完成排序
如下代码,就可以实现第一次冒泡(最小实现)
for (let i = 0; i < len - 1; i++) {
if (arr[i] > arr[i + 1]) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
}
}
最终实现
- 需要重复 len 次排序
- 每一次排序都需要冒泡
⭐ :每次冒泡时(第二次循环),都只需要在意还未排序的部分(len - j)
function bubbleSort(arr) {
let len = arr.length;
for (let j = 0; j < len; j++) {
for (let i = 0; i < len - j; i++) {
if (arr[i] > arr[i + 1]) {
[arr[i], arr[i + 1]] = [arr[i + 1], arr[i]];
}
}
}
return arr;
}
console.log("bubbleSort(arr)", bubbleSort(arr));