以前上学时候,老师直接就两个for循环把这个冒泡弄出来了,或者说直接从外循环开始入手(那时候我也不是很理解)
下面再次看时候,有所收获
直接上代码
public class test {
public static void main(String[] args) {
int[] arr = {63, 65, 94, 23, 76};
//第一轮:把最大的值移到最后
//第1次比较后结果:63,65,94,23,76(63比65小)
//第2次比较后结果:63,65,94,23,76(65比94小)
//第3次比较后结果:63,65,23,94,76(94和23做了交换,94>23,94往上冒)
//第4次比较后结果:63,65,23,76,94(94和76做了交换,94>76,94往上冒)
// int tmp = 0;//用来比较大小交换用的
// for (int i = 0; i < 4; i++) {
// if (arr[i] > arr[i + 1]) {
// tmp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] = tmp;
// }
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
// System.out.println();
//第二轮:把第二大值移到最后(94前面)
//第1次比较后结果:63,65,23,76,94(63比65小)
//第2次比较后结果:63,23,65,76,94(65和23做了交换,65>23,65往上冒)
//第3次比较后结果:63,23,65,76,94(65比76小)
// for (int i = 0; i < 3; i++) {
// if (arr[i] > arr[i + 1]) {
// tmp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] = tmp;
// }
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
// System.out.println();
//第三轮:把第三大值移到最后(76前面)
//第1次比较后结果:23,63,65,76,94(63和23做了交换,63>23,63往上冒)
//第2次比较后结果:23,63,65,76,94(63比65小)
// for (int i = 0; i < 2; i++) {
// if (arr[i] > arr[i + 1]) {
// tmp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] = tmp;
// }
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
// System.out.println();
//第四轮:把第四大值移到最后(65前面)
//第1次比较后结果:23,63,65,76,94(23比63小)
// for (int i = 0; i < 1; i++) {
// if (arr[i] > arr[i + 1]) {
// tmp = arr[i];
// arr[i] = arr[i + 1];
// arr[i + 1] = tmp;
// }
// }
// for (int i = 0; i < arr.length; i++) {
// System.out.print(arr[i] + " ");
// }
// System.out.println();
//对上面代码合并一下
System.out.println(arr.length);
int tmp = 0;//用来比较大小交换用的
for (int j = 0; j < arr.length - 1; j++) { //4轮比较,就是一个循环(外循环),最后把4换了
// for (int j = 0; j < 4; j++) { //4轮比较,就是一个循环(外循环),最后把4换了
for (int i = 0; i < arr.length - 1 - j; i++) {
if (arr[i] > arr[i + 1]) {
tmp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = tmp;
}
}
System.out.println("第" + (j+1) + "轮");
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
System.out.println();
}
}
}
最后结果