public class Maopao {
public static void main(String[] args) {
int arr[] = {10, 50, 3, 7, 14};
int len = arr.length;
for(int i = 0;i < len -1;i++) {
for(int j = 0;j < len - 1 - i;j++) {
if(arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
System.out.println(Arrays.toString(arr));
}
}
public class Maopao {
public static void main(String[] args) {
int arr[] = {10, 50, 3, 7, 14};
int len = arr.length;
int count = 0;
for(int i = 0;i < len -1;i++) {
// boolean ifTrans = false;
System.out.println("============第" + (i+1) + "次比较============");
for(int j = 0;j < len - 1 - i;j++) {
System.out.print("比较: " + arr[j] + " 和 " + arr[j + 1]);
if(arr[j] > arr[j + 1]) {
int tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
// ifTrans = true;
System.out.print("\t 比较结果: 交换");
System.out.print("\t" + Arrays.toString(arr));
} else {
System.out.print("\t 比较结果: 不交换");
System.out.print("\t" + Arrays.toString(arr));
}
System.out.println();
count++;
}
System.out.println();
// if(!ifTrans) {
// break;
// }
}
System.out.println(count);
System.out.println(Arrays.toString(arr));
}
}
============第1次比较============
比较: 10 和 50 比较结果: 不交换 [10, 50, 3, 7, 14]
比较: 50 和 3 比较结果: 交换 [10, 3, 50, 7, 14]
比较: 50 和 7 比较结果: 交换 [10, 3, 7, 50, 14]
比较: 50 和 14 比较结果: 交换 [10, 3, 7, 14, 50]
============第2次比较============
比较: 10 和 3 比较结果: 交换 [3, 10, 7, 14, 50]
比较: 10 和 7 比较结果: 交换 [3, 7, 10, 14, 50]
比较: 10 和 14 比较结果: 不交换 [3, 7, 10, 14, 50]
============第3次比较============
比较: 3 和 7 比较结果: 不交换 [3, 7, 10, 14, 50]
比较: 7 和 10 比较结果: 不交换 [3, 7, 10, 14, 50]
============第4次比较============
比较: 3 和 7 比较结果: 不交换 [3, 7, 10, 14, 50]
10
[3, 7, 10, 14, 50]
优化:如果在一次循环中没有发生交换位置,则可以提前结束
============第1次比较============
比较: 10 和 50 比较结果: 不交换 [10, 50, 3, 7, 14]
比较: 50 和 3 比较结果: 交换 [10, 3, 50, 7, 14]
比较: 50 和 7 比较结果: 交换 [10, 3, 7, 50, 14]
比较: 50 和 14 比较结果: 交换 [10, 3, 7, 14, 50]
============第2次比较============
比较: 10 和 3 比较结果: 交换 [3, 10, 7, 14, 50]
比较: 10 和 7 比较结果: 交换 [3, 7, 10, 14, 50]
比较: 10 和 14 比较结果: 不交换 [3, 7, 10, 14, 50]
============第3次比较============
比较: 3 和 7 比较结果: 不交换 [3, 7, 10, 14, 50]
比较: 7 和 10 比较结果: 不交换 [3, 7, 10, 14, 50]
9
[3, 7, 10, 14, 50]