从后向前或者从前向后两两比较相邻元素的值,如果两者的相对次序不对(A[i-1]>A[i]),则交换它们,其结果是将最(大)小的元素交换到待排序序列的第一个位置,我们称它为一趟冒泡。下一趟冒泡时,前一趟确定的最(大)小元素不再参与比较,待排序序列减少一个元素,每趟冒泡的结果把序列中最(大)小的元素放到了序列的"最前面"
public class maopao {
public static void main(String[] args){
int[]arr={7,1,9,8,3,6,2};
System.out.println("冒泡排序前:");
printArray(arr); //打印·数组元素
bubbleSort(arr); //调用排序方法
System.out.println("冒泡排序后:");
printArray(arr); //打印数组元素
}
//定义打印数组方法
public static void printArray(int[] arr){
//循环遍历数组的元素
for (int i=0; i<arr.length;i++){
System.out.print(arr[i]+""); //打印元素和空格
}
System.out.print("\n");
}
//定义对数组排序的方法
public static void bubbleSort(int[] arr){
//定义外层循环
for (int i=0;i<arr.length-1;i++){
//定义内层循环
for (int j=0;j<arr.length-i-1;j++){
if (arr[j] < arr[j+1]){ //比较相邻元素
//下面的三行代码用于交换两个元素
int temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.print("第"+(i+1)+"轮排序后: ");
printArray(arr); //每轮比较结束打印数组元素
}
}
}