概念
冒泡排序:是一种简单的排序算法,它重复地走访过要排序的数列,依次比较俩个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
简而言之就是把一系列的数据按照一定的顺序进行排列显示(从小到大或从大到小)。
这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
案例
我们可以将数组[5,4,3,2,1]中的元素按照从小到大的顺序排序,输出:1,2,3,4,5
分析
1.一共需要的趟数,我们用外层for循环
- 5个数据我们一共要走4躺
- 长度就是数组长度减去1
arr.length - 1
2.每一趟交换次数,我们用里层for循环
- 第一趟,交换4次
- 第二趟,交换3次
- 第三趟,交换2次
- 第四躺,交换1次
- 长度就是数组长度 减去 次数
- 但是我们次数是从0开始的,所以最终
arr.length - i - 1
3.交换俩个变量就好了
代码
var arr = [5, 4, 3, 2, 1];
for (var i = 0; i <= arr.length; i++) { //外层循环--趟数
for (var j = 0; j <= arr.length - i - 1; j++) { //里层循环--每一趟的交换次数
//内部交换2个变量的值,前一个和后面一个数组元素相比较
if (arr[j] > arr[j + 1]) {
var temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
console.log(arr);