很简单的排序算法,如果相邻的两个数中,第一个比第二个大,那么交换,否则不交换
不管交换与否,继续往下走,将一轮数据都比较完毕,能保证最大的数在最后的位置上
然后继续第二轮循环,但是不用和最后的比较
如果整整一轮都没有交换,则已经是排好序,用flag判断,并跳出循环
没什么说的了 注意边界条件
public static void test(int[] arr) {
int temp = 0;
boolean flag = false;
for (int i = 0 ; i < arr.length - 1 ; i++){
for (int j = 0 ; j < arr.length - 1 - i ; j++){
if (arr[j] > arr[j + 1]){
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
flag = true;
}
}
if (!flag){
System.out.println("交换结束");
break;
} else {
flag = true;
}
}
}