1冒泡排序思考步骤
用画图的方式理出来
2代码实现
// ary 传入的数组 array排序后的新数组
function buble(ary) {
// 外层循环控制循环的轮数
for (let i = 0; i < ary.length - 1; i++) {
// 内层循环比较 每一轮比较的次数
for (let j = 0; j < ary.length - 1 - i; j++) {
// 判断前一项和后一项的大小 前面的大于后面的交换位置,否则不交换位置
if (ary[j] > ary[j + 1]) {
let temp = null;
temp = ary[j];
ary[j] = ary[j + 1];
ary[j + 1] = temp
}
}
}
return ary
}
let ary = [12, 8, 24, 16, 1]
console.log(buble(ary),'冒泡排序')
es6的方式实现
function buble1(ary) {
for (let i = 0; i < ary.length - 1; i++) {
for (let j = 0; j < ary.length - 1 - i; j++) {
if (ary[j] > ary[j + 1]) {
// 利用es6的写法
[ary[j], ary[j + 1]] = [ary[j + 1], ary[j]]
}
}
}
return ary
}
let ary = [12, 8, 24, 16, 1]
console.log(buble1(ary), '冒泡排序11')