public class BubbleSort {
/**
* N个数字要排序完成,总共进行N-1趟排序,每i趟的排序次数为(N-i)次,所以可以用双重循环语句,外层控制循环多少趟,内层控制每一趟的循环次数。
* @param args
*/
public static void main(String[] args) {
int arr[] = {26,15,29,66,99,88,36,77,111,1,6,8,8};
for(int i=0;i < arr.length-1;i++) {//外层循环控制排序趟数
for(int j=0; j< arr.length-i-1;j++) {
//内层循环控制每一趟排序多少次
// 把小的值交换到前面
if (arr[j]>arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
System.out.print("第"+(i+1)+"次排序结果:");
//列举每次排序的数据
for(int a=0;a<arr.length;a++) {
System.out.print(arr[a] + "\t");
}
System.out.println("");
}
System.out.println("最终排序结果:");
for(int a = 0; a < arr.length;a++) {
System.out.println(arr[a] + "\t");
}
}
}
输出结果:
第1次排序结果:15 26 29 66 88 36 77 99 1 6 8 8 111
第2次排序结果:15 26 29 66 36 77 88 1 6 8 8 99 111
第3次排序结果:15 26 29 36 66 77 1 6 8 8 88 99 111
第4次排序结果:15 26 29 36 66 1 6 8 8 77 88 99 111
第5次排序结果:15 26 29 36 1 6 8 8 66 77 88 99 111
第6次排序结果:15 26 29 1 6 8 8 36 66 77 88 99 111
第7次排序结果:15 26 1 6 8 8 29 36 66 77 88 99 111
第8次排序结果:15 1 6 8 8 26 29 36 66 77 88 99 111
第9次排序结果:1 6 8 8 15 26 29 36 66 77 88 99 111
第10次排序结果:1 6 8 8 15 26 29 36 66 77 88 99 111
第11次排序结果:1 6 8 8 15 26 29 36 66 77 88 99 111
第12次排序结果:1 6 8 8 15 26 29 36 66 77 88 99 111
最终排序结果:
1
6
8
8
15
26
29
36
66
77
88
99
111