排序算法------冒泡排序法

为了方便大家理解,我尽量写的浅显易懂,同时希望大家把不理解的发到评论中,我会尽所能,帮助你l理解。

欢迎qq进行交流问题: 

      本人QQ :1770115451             算法交流群: 1061907071

  总体思路:  

    前一个元素与后一个元素进行比较,将大的元素放到后边(交换),一轮比较后,最大的元素就会出现在最后的位置,然后继续从剩下的元素寻找最大的元素。由于每一轮比较后,会在数组最后面确定了一个位置。如果将数组的最后一个位置比作 天花板。那么每进行一轮比较所得出的最大元素会占用一个位置。所以天花板的高度就会降低一个位置。也就是说,天花板的位置-1。

  //下图是关于数组中天花板的解释

 

 算法实现步骤:

    第一步:定义一个外层循环,控制天花板的高度。

    第二步:在定义一个内层循环,用来控制前一个元素与后一个元素的比较

    第三步:如果前一个元素大于后一个元素,则进行交换,反之不变

 关键代码:

 1     //冒泡排序法
 2     public static void bobbleSort (int arr[]){
 3         //天花板从高到底逐次递减
 4         for(int celing = arr.length-1;celing>=0;celing--){
 5             //从第一个位置到天花板的位置一次进行比较
 6             for(int i=0;i<celing;i++){
 7                 if(arr[i]>arr[i+1]){
 8                     //如果前面的元素大于后面的元素,则交换
 9                     int temp=arr[i];
10                     arr[i]=arr[i+1];
11                     arr[i+1]=temp;
12                 }
13             }
14         }    
15     }

  

原文地址:https://www.cnblogs.com/songchengyu/p/12891450.html