冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来
1.第一层 for循环的含义(主外)
首先我们要确定 一共需要交换多少趟 ,我们通常最外层的for循环来用于执行交换的趟数;
例如:一个数组长度为七,届时需要交换六趟;
核心算法为:arr.length-1;
2.第二层 for循环的含义(主内)
第二层for循环主要是用来控制每次交换的次数;
其主要的核心算法是 arr.length-i-1;
因为是从零开始的 所以要减去
此时数组的索引为 0 第一趟交换 6 次
1 第二趟交换 5 次
2 第三趟交换 5 次
3 第四趟交换 4 次
4 第五趟交换 3 次
5 第六趟交换 2 次
3.交换两个变量的值
前一个和后一个数组的元素相比较
判断数组里面的元素大小,先声明一个变量用于接收,如果数组里面第J个元素大于数组里面第J+1个元素,将进行交换
步骤:1.先把数组里面的第一个元素(arr[ j ])给到声明的空变量max; ** max = arr[ j ]**
2.再把第二个元素(**arr[ j + 1]** )给到第一个变量(**arr[ j ]**);
3.**arr[ j + 1]** = **max;**
<script>
var arr = [1, 9, 8, 65, 4563, 45, 2];
//1.控制趟数算法 数组的长度 - 1 arr.length-1
for (var i = 0; i < arr.length - 1; i++) {
//2.控制每次交换的次数 算法 数组的长度-趟数-1 arr.length-i-1
for (var j = 0; j < arr.length - i - 1; j++) {
// 3.交换变量
var max ;
if(arr[j]>arr[j+1]){
max = arr[j];
arr[j] = arr[j+1]
arr[j+1] = max
}
}
}
console.log(arr);
</script>
![](https://img-blog.csdnimg.cn/a185da53289f4b6a8a437667b0313d40.png)
版权归原作者 ncj0612 所有, 如有侵权,请联系我们删除。