一 . 冒泡排序的特点
1.假设数组长度为arr.length
2.在外层for循环内,一共进行arr.length-1轮排序
3.每一轮排序确定一个数的位置,比如第一轮排序确定一个最大数放在位置上,第二轮排序确定一个第二大的数,把它放在第二大数的位置,以此类推
4.当比较时,如果前一位大于后一位数,则交换(从小到大)
5.每轮比较的次数在逐步减少
二 . 代码实现
public class ArraySort_Bubble {
public static void main(String[] args) {
int temp; //用于辅助交换的变量
int[] arr={10,51,26,43,2,18};
//输出原数组
System.out.println("====原数组====");
for (int i=0;i<arr.length;i++)
System.out.print(arr[i]+"\t");
System.out.println();
//冒泡排序:
//i表示进行几轮排序,排序次数=数组长度-1(最后一位数不需要比较)
for(int i=0;i< arr.length-1;i++){
//j<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;
}
}
}
System.out.println();//换行
//输出排序后数组
System.out.println("====排序后====");
for(int i=0;i<arr.length;i++)
System.out.print(arr[i]+"\t");
}
}
三 . 排序前后结果
以下展示上述代码实现结果
四 . 每轮排序后的结果
以下展示上述代码在排序过程中,每轮排序的结果。从结果中可以看出,冒泡排序在每轮循环中排一个剩余数组中最大的数放在数组的最后(从小到大排)