代码如下
package BubbleSort;
/*
冒泡排序其实就是讲数组中的数据左右进行比较,比如一个数组int a ={8,9,10,7,6,0,11}
第一个数和第二个数进行比较,如果左边的数大于右边的数就交换位置
然后第二个数和第三个数进行比较,如果左边的数大于右边的数就交换位置
第三个和第四个数进行比较,如果左边的数大于右边的数就交换位置
这个原理就是冒泡排序,每次都拿出最大的一个数,放在最右边,就能把数组通过从小到大的方式排序。
第1次循环:
8 9 10 7 6 o 11(第1次比较:交换)
8 9 10 7 6 o 1〈第2次比较:不交换)
8 9 710 6 o 11 (第3次比较:交换)
8 9 7 6 10 0 11 (第4次比较:交换)
8 9 7 6 o 10 11 (第5次比较:交换)
8 9 7 6 o 10 11 (第6次比较:不交换)最终管出的最大数据在右动:11
参与比较的数据:8 9 7 6 0 10第2次循坏:
8 9 7 6 o 1o (第1次比较:不交换)
87 9 6 o 1o (第2次比较:交换)
8 76 9 o 1o (第3次比较:交换)
876 o 9 1o (第4次比较:交换)
8 76 o 9 1o (第5次比较:不交换)
参与比较的数据:8 7 6 o 9
第3次循环:
7 8 6 o 9 (第1次比较:交换)
7 6 8 o 9 (第2次比较:交换)
7 6 o 8 9 (第3次比较:交换)
76 o 8 9 (第4次比较:不交换)
参与比较的数据:7 6 o 8
第4次循环:
6 7 o 8 (第1次比较:交换)
6 o 7 8(第2次比较:交换)
6 o 7 8 (第3次比较:不交换)
参与比较的薮据:6 o 7第5次循环:
0 6 7(第1次比较:交换)
0 6 7(第2次比较:不交换)参与比较的数据: o 6
第6次循坏:
o 6(第1次比较:不交换)*/
public class BubbleSort01 {
public static void main(String[] args) {
//创建数组
int[] ars = new int[]{8,9,10,7,6,0,11};
//开始循环
for (int i = ars.length-1; i >0 ; i--) {
//这里的循环表示循环的次数等于数组的长度-1,循环的次数为7
for (int j = 0; j < i; j++) {
//这里循环的次数随着i--而递减,第二次循环排出倒数第一个元素
//倒数第三次循环排出倒数第二个元素
if (ars[j] > ars[j+1]){
int temp;
temp = ars[j];//整个盒子装一下变量
ars[j] = ars[j+1];
ars[j+1]= temp;
}
}
}
//遍历数组
for (int i = 0; i < ars.length; i++) {
System.out.println(ars[i]);
}
}
}
结果如下