// 冒泡排序
function bubbleSort(arr) {
const length = arr.length;
for (let i = 0; i < length - 1; i++) {
let sortFlag = true;
for (let j = 0; j < length - i - 1; j++) {
if (arr[j] > arr[j+1]) {
[arr[j], arr[j+1]] = [arr[j+1], arr[j]];
sortFlag = false;
}
}
if (sortFlag) {
break;
}
}
return arr;
}
const arr = [2, 3, 5, 4, 8, 10, 7, 9, 1, 6];
bubbleSort(arr);
原理:
依次比较两个相邻的值,如果后者较小,则交换两者的顺序。
标志位 sortFlag
,用于判断当前轮次是否已经完成排序。如已排序,可跳出循环且减少不必要的比较操作。