数组内各元素按升或降序排序
[9,1,3,2,8,0,5,7,6,4]
思路1:
- 比较相邻两个元素,然后根据大小来决定是否交换它们的位置
- 例子:
第1次排序:1, 3, 2, 8, 0, 5, 7, 6, 4, 9
第2次排序:1, 2, 3, 0, 5, 7, 6, 4, 8, 9
第3次排序:1, 2, 0, 3, 5, 6, 4, 7, 8, 9
第4次排序:1, 0, 2, 3, 5, 4, 6, 7, 8, 9
第5次排序:0, 1, 2, 3, 4, 5, 6, 7, 8, 9 - 这种排序方式被称为冒泡排序,冒泡排序是最慢的排序方式,数字少还可以凑合用,不适用于数据量较大的排序
const arr = [9, 1, 3, 2, 8, 0, 5, 7, 6, 4];
for(let i = 0; i < arr.length - 1; i++) {
for(let j = 0; j < arr.length - 1; j++) {
// arr[i](前边的元素) arr[i+1](后边元素)
if(arr[j] > arr[j + 1]) {
// 大数在前,小数在后,需要交换两个元素的位置
let temp = arr[j]; // 临时变量用了存储arr[i]的值
arr[j] = arr[j + 1]; // 将arr[i+1]的值赋给arr[i]
arr[j + 1] = temp; // 修改arr[i+1]的值
}
}
console.log("第"+(i+1)+"次排序:" + arr);
}
/*
第1次排序:1,3,2,8,0,5,7,6,4,9
第2次排序:1,2,3,0,5,7,6,4,8,9
第3次排序:1,2,0,3,5,6,4,7,8,9
第4次排序:1,0,2,3,5,4,6,7,8,9
第5次排序:0,1,2,3,4,5,6,7,8,9
第6次排序:0,1,2,3,4,5,6,7,8,9
第7次排序:0,1,2,3,4,5,6,7,8,9
第8次排序:0,1,2,3,4,5,6,7,8,9
第9次排序:0,1,2,3,4,5,6,7,8,9
*/