未封装
<script>
var arr = [213, 2, 132, 4, 34, 32, 534, 653, 6, 47, 45, 7, 57, 457, 457, 1, 1, 25, 45, 4, 6];
for (var i = 0; i < arr.length - 1; i++) { //控制的轮数 轮数等于数组长度减一
for (var j = 0; j < arr.length - i - 1; j++) { //里边的循环管理每一次交换的次数 次数等于 数组长度-交换的次数-1
// if判断交换2个变量的值 前面的和后面的元素相比较
if (arr[j] > arr[j + 1]) { //前面项大于后面项则调换位置
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);
</script>
封装版
<script>
//函数封装冒泡排序
function sort(arr) {
//外层控制轮数 核心算法:数组长度减去1就是它的轮数
for (var i = 0; i < arr.length - 1; i++) {
//内层控制它的交换次数 核心算法:数组长度减去当前的轮数i 因为次数是从零开始所以要减去1 arr.length-i-1
for (var k = 0; k < arr.length - i - 1; k++) {
//交换俩个数的值 若是前一项大于后一项 则交换位置 k+1就是它后边的那一项
if (arr[k] > arr[k + 1]) {
var temp = null;
temp = arr[k]; //把第一项的值赋给这个temp
arr[k] = arr[k + 1]; //然后把后一项 的值赋给前一项
arr[k + 1] = temp; // 此时temp 中存放得是前一项的值 然后把temp的值赋给 后一项 就完成了交换
}
}
}
return arr;
}
var so = sort([23, 12, 4, 5, 2543, 65, 67, 568]);
console.log(so);
</script>