【说明】:1.代码中的数组的打印方法是我本地idea同一个包下一个类中的静态方法,读者需要自己写,直接复制代码是会报错的。
2.需要注意的是在外层循环遍历数组的时候采用倒叙遍历更好这样与内层遍历时的变量关系更加明确。当然正序遍历也是没有问题的。
package com.yang.sort;
import static com.yang.sort.SelectSort.printArrays;
import static com.yang.sort.SelectSort.swap;
/**
* 冒泡排序: 相邻的两个元素以此比较(a[0]和a[1],a[1]和a[2]...),如果前面一个元素大于后面一个元素,
* 就交换两个元素,依此类推,将最大的一个元素放在数组的最后。在将前面的数组看作一个数组,重复上面
* 的操作即可。
* 时间复杂度:O(n^2),稳定
*/
public class BubbleSort {
public static void main(String[] args) {
int[] a={1,5,2,7,3,9,8,4,6};
System.out.println("排序前的数组:");
printArrays(a);
for(int i=a.length;i>0;i--){
for(int j=0;j<i-1;j++){
if(a[j]>=a[j+1])
swap(a,j,j+1);
}
}
System.out.println();
System.out.println("排序后的数组:");
printArrays(a);
}
}