原理:从数组的第一个数开始,依次跟后面的数进行比较(按升序进行比较),若前者大进行交换顺序,直到所有大的数冒泡的最后,然后形成从大到小的一个有序数组。
package cn.yang;
public class Demo2 {
public static void main(String[] args) {
int[] arr = {21,2,1,13,11,7};
System.out.println("排序前:");
System.out.println(arrToString(arr));
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]){//如果前一个数比后一个数大,则将两者的位置调换 ,每一次调换,下次比较数量减1
int temp = arr[j];//将arr[j]赋值给temp,此时为空
arr[j] = arr[j+1];//将小的与大的进行交换
arr[j+1] = temp;//将置换后的数复制给后一位
}
}
}
System.out.println("排序后:");
System.out.println(arrToString(arr));
}
private static String arrToString(int[] arr) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("[");
//最后一个
for (int i = 0; i < arr.length; i++) {
if(i==arr.length-1){//最后一个数
stringBuilder.append(arr[i]);
}else{
stringBuilder.append(arr[i]+", ");
}
}
stringBuilder.append("]");
String string = stringBuilder.toString();
return string;
}
}