冒泡排序原理:相邻的两个元素进行比较,大的放在后面。使用这个方法遍历数组即可完成排序。
我们现在对 [2, 15, 7, 5, 215, 91] 进行排序
let A = [2, 15, 7, 5, 215, 91];
for (let m = 0; m < A.length-1; m++) {
for (let i = 0; i < A.length-1; i++) {
if (A[i] > A[i + 1]) {
let temp = A[i];
A[i] = A[i + 1];
A[i + 1] = temp;
}
}
}
console.log(A)
因为数组的顺序复杂程度,排序次数也有所不同,例如 [1,2,4,3,5] 的冒泡排序所需次数肯定比 [2,3,5,4,1] 的次数少,[1,2,4,3,5] 遍历数组一次就可以得到正确的顺序,多遍历了数组4次,降低了性能,我们只需要设置一个中间态监听状态就可以终止遍历。
let A = [2, 15, 7, 5, 215, 91];
for (let m = 0; m < A.length; m++) {
let state = true;
for (let i = 0; i < A.length; i++) {
if (A[i] > A[i + 1]) {
let temp = A[i];
A[i] = A[i + 1];
A[i + 1] = temp;
state = false;
}
}
if(state) break;
}
console.log(A)