冒泡排序简介
数组内部的元素通过与自身其他元素的比较并交换位置,达到降序或升序的效果
通过归纳法找出运行规律
首先先任意创建一个数组 let arr = [3,2,1] 逐步记录下数组交换的情况
第一轮交换 : 用第一个元素3逐个与其他元素比较,如果其他元素数值小于3则与3进行位置交换
[2,3,1] [2,1,3] 在第一轮交换中内部的3共移动了两次
第二轮交换: 同样用第一个元素逐个与其他元素比较
[1,2,3] 在第二轮交换中内部功能移动了一次
由上述规律可看出一次排序共需要进行 arr.length - 1 轮交换
第一轮交换中 , 一共交换了 arr.length - 1次
第一轮交换中 , 一共交换了 arr.length - 2次
js代码实现
由此可用双重for循环来实现此排序
//最外层for循环控制交换的轮次
for(let i = 0 ; i < arr.length - 1 ; i ++){
//内层循环控制每轮交换次数
for(let j = 0 ; j < arr.length - i - 1; j++){
//判断如果前一个值大于后一个值,则进行位置交换
if(arr[j] > arr[j+1]){
//创建temp变量作为中间变量
let temp = arr[j]
arr[j] = arr[j+1]
arr[j+1] = temp
}
}
}