一、解决方案
    给定数组:A = [9,7,5,6,2,3,1,4,8],对数组进行冒泡排序
    核心:A[i]和A[i+1],如果A[i]>A[i+1],就交换。
    无优化方案:
    每一循环交换a.length-1次,总共排序a.length-1轮
    终极优化方案:
    记录每一循环最后一次交换的元素的索引,作为下一轮的次数。
    二、代码

    1. public static void bubble(int[] a){
    2. //记录下一次冒泡的次数
    3. int n = a.length - 1;
    4. for(int j = 0 ;j<a.length -1 ;j++){
    5. int last = 0;
    6. for(int i = 0;i<n;i++){
    7. if(a[i]>a[i+1]){
    8. swap(a,i,i+1);
    9. last = i;
    10. }
    11. System.out.println(Arrays.toString(a));
    12. }
    13. System.out.println("------");
    14. n = last;
    15. if(n == 0){
    16. break;
    17. }
    18. }
    19. }