知识点:【web前端基础 | JS基础】数组
冒泡排序:一种算法,可以把数据按顺序排列,两两比较,一直移动
一:数组,冒泡排序
<script>
var arr = [1, 5, 7, 422, 32, 565, 8, 3];
function sorted(arr) {
// 遍历
// 外层for循环,控制需要的趟数
for (var i = 0; i < arr.length - 1; i++) {
//内层for循环,控制每趟需要的交换的次数
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
//两个数交换位置,借助一个临时变量
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
return arr;
}
//调用函数
sorted(arr);
console.log(arr);
</script>
优化:万一数组已经排好序,就停止所有代码(标志位)
<script>
var arr = [1, 5, 7, 422, 32, 565, 8, 3];
function sorted(arr) {
// 遍历
// 外层for循环,控制需要的趟数
for (var i = 0; i < arr.length - 1; i++) {
//设置标志位
var flag = true;
//内层for循环,控制每趟需要的交换的次数
for (var j = 0; j < arr.length - i - 1; j++) {
if (arr[j] < arr[j + 1]) {
//两个数交换位置,借助一个临时变量
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = false;
}
}
if (flag) {
break;
}
}
return arr;
}
//调用函数
sorted(arr);
console.log(arr);
</script>
两个的运行截图,加了标志位的,效率比较高