冒泡排序
解题思想:拿两个相邻数组元素进行比较,如果arr[0]>arr[1],那么这两个交换位置(用临时变量);第一次把所有的元素都比一遍之后,9会排在最后;第二次比完,8和9是最后两位,第三次比完,789,第四次6789……一直到第八次排序完毕
废话少说,直接上代码
<script>
// 需求:将数组里的数字从小到大排列
let array = [6, 5, 9, 7, 8, 4, 2, 1, 3]
// 第二步:================= 外面再套一层循环,实现多次两两比较 =================
for (let j = 0; j < array.length-1; j++) { //这里的j小于数组长度减1
// 第一步:================= 两两相比较,大的往后排 =================
// debugger
for (let i = 0; i < array.length-1-j; i++) {
// 遍历数组,判断相邻元素间的大小
if (array[i] > array[i + 1]) {
// 1、使用临时变量实现两个数组元素之间的位置交换
let temp = array[i]
array[i] = array[i + 1]
array[i + 1] = temp
// 2、也可以利用解构实现元素位置交换
// [array[i+1],array[i]]=[array[i],array[i+1]]
}
}
}
console.log(array);
</script>
冒泡排序口诀: 双层for循环,一层减一次,里层减外层,变量相交换