java冒泡排序的实现过程

冒泡排序的思路:用相邻两元素比较,符合要求交换位置。

例子中使相邻两元素比较,大的放右边,最终实现从小到大的排序。

第一步:首先实现一个数组中最大值在最右边:

public static void main(String args[]){
        int[] arr  = {12,4,2,34,8};           //定义一个数组arr
        bubbleSort(arr);                      //调用方法bubbleSort
        System.out.println("排序后为:");     //打印最后结果
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+",");
        }
    }
    
    public static void bubbleSort(int[] arr){      
        for(int i = 0; i<arr.length-1;i++){
            if(arr[i]>arr[i+1]){
                int temp = arr[i];
                arr[i] = arr[i+1];
                arr[i+1] = temp;
            }
        }
    }            

打印出来如下:

排序后为:
4,2,12,8,34,

第二步:把第二大的值送到最后一位的左边

添加代码段如下:

forint  i = 0;i<arr.length-1-1;i++){
  if(arr[i]>arr[i+1]){
     int temp = arr[i];
     arr[i] = arr[i+1];
     arr[i+1] = temp;      
   }   
}

同样,一次类推;最终可以达到将数字从小到大的排序;

总结我们的代码,

    public static void main(String args[]){
        int[] arr = {8,34,4,2,12};
        bubbleSort(arr);            //定义方法bubbleSort
        System.out.println("排序后为: ");
        for(int i = 0;i<arr.length;i++){
            System.out.print(arr[i]+",");
        }
    }
    public static void bubbleSort(int[] arr){
        for(int j = 0;j<arr.length-1;j++){      //j用于控制轮数,只要length-1轮即可
            for(int i = 0;i<arr.length-1-j;i++){    i用于控制两个数字之间比较与交换
                if(arr[i]>arr[i+1]){
                    int temp = arr[i];
                    arr[i] = arr[i+1];
                    arr[i+1] = temp;
                }
            }
        }
    }

排序后为:
2,4,8,12,34,

 

posted @ 2018-01-18 19:44  Arlis  阅读(242)  评论(0编辑  收藏  举报