冒泡排序的三种不同写法
- 交换变量
let arr = [1, 2, 5, 4, 8, 7, 9, 6, 3];
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j + 1] > arr[j]) {
let current = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = current;
}
}
}
console.log(arr)
- 解构赋值
let arr = [1, 2, 5, 4, 8, 7, 9, 6, 3];
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j + 1] > arr[j]) {
[arr[j], arr[j + 1]] = [arr[j + 1], arr[j]]
}
}
}
console.log(arr)
- 异或
let arr = [1, 2, 5, 4, 8, 7, 9, 6, 3];
for (let i = 0; i < arr.length - 1; i++) {
for (let j = 0; j < arr.length - 1 - i; j++) {
if (arr[j + 1] > arr[j]) {
arr[j] ^= arr[j + 1];
arr[j + 1] ^= arr[j];
arr[j] ^= arr[j + 1];
}
}
}
console.log(arr)
异或示例
var a = 12
var b = 23
a = a ^ b
b = b ^ a
a = a ^ b
console.log(a)
console.log(b)