java之冒泡排序
冒泡排序原理:
从第一个数开始,和后面一个数比较大小,根据升序或者降序,看是否需要互换位置。
每一轮会把1个数罗列到正确位置,经过数组长度-1轮比较,排序完成。
比如:对数组{11,55,33,22,44}进行升序排列
数组长度是5,需要经过5-1轮,每一轮需要比较5-当前轮次。
public class Test7 {
public static void main(String[] args){
int[] array_1={11,55,33,22,44};
// 升序排列
int x;
for(int i=0;i<array_1.length-1;i++){
System.out.println("\n第"+(i+1)+"轮开始");
for(int j=0;j<array_1.length-1-i;j++){
System.out.println("第"+(j+1)+"次比较:"+array_1[j]+"和"+array_1[j+1]);
if(array_1[j]>array_1[j+1]){
System.out.println("互换");
x=array_1[j];
array_1[j] = array_1[j+1];
array_1[j+1] = x;
}
System.out.println("第"+(j+1)+"次比较结束:"+Arrays.toString(array_1));
}
System.out.println("第"+(i+1)+"轮结束:"+Arrays.toString(array_1));
}
System.out.println("最终排序结果为"+Arrays.toString(array_1));
}
}
第1轮开始
第1次比较:11和55
第1次比较结束:[11, 55, 33, 22, 44]
第2次比较:55和33
互换
第2次比较结束:[11, 33, 55, 22, 44]
第3次比较:55和22
互换
第3次比较结束:[11, 33, 22, 55, 44]
第4次比较:55和44
互换
第4次比较结束:[11, 33, 22, 44, 55]
第1轮结束:[11, 33, 22, 44, 55]
第2轮开始
第1次比较:11和33
第1次比较结束:[11, 33, 22, 44, 55]
第2次比较:33和22
互换
第2次比较结束:[11, 22, 33, 44, 55]
第3次比较:33和44
第3次比较结束:[11, 22, 33, 44, 55]
第2轮结束:[11, 22, 33, 44, 55]
第3轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第2次比较:22和33
第2次比较结束:[11, 22, 33, 44, 55]
第3轮结束:[11, 22, 33, 44, 55]
第4轮开始
第1次比较:11和22
第1次比较结束:[11, 22, 33, 44, 55]
第4轮结束:[11, 22, 33, 44, 55]
最终排序结果为[11, 22, 33, 44, 55]