java冒泡排序

1. 冒泡排序

1.1 算法步骤

  • 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
  • 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。
  • 针对所有的元素重复以上的步骤,除了最后一个。
  • 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

1.2 动画演示

image

1.3 参考代码

// Java 代码实现

 public class BubbleSort implements IArraySort {
 
  @Override
   public int[] sort(int[] sourceArray) throws Exception {
   // 对 arr 进行拷贝,不改变参数内容
   int[] arr = Arrays.copyOf(sourceArray, sourceArray.length);

      for (int i = 1; i < arr.length; i++) {
        // 设定一个标记,若为true,则表示此次循环没有进行交换,也就是待排序列已经有序,排序已经完成。
         boolean flag = true;

         for (int j = 0; j < arr.length - i; j++) {
              if (arr[j] > arr[j + 1]) {
                int tmp = arr[j];
                 arr[j] = arr[j + 1];
               arr[j + 1] = tmp;

                   flag = false;
               }
           }
           if (flag) {
               break;
        }
       }
       return arr;
   }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 为何叫冒泡 越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮...
    佛系猿阅读 1,072评论 1 0
  • 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,...
    小沙鹰168阅读 346评论 0 3
  • 经典排序算法中,有好几种排序,下边说下冒泡排序和快速排序的理解与实现,记太多容易混乱; 1.冒泡排序:字面理解,值...
    Beauty_Beast阅读 1,195评论 0 0
  • 桃子上市有有一段时间了,最近一直吃油桃,看到红彤彤的水蜜桃很是眼馋,特别想买。我妈说这个桃子不好吃,不如油桃的味道...
    三页胡阅读 128评论 0 0
  • 还看海贼王,吃同款大块肉,跟着路飞一起去寻找one piece,哈哈 第一次尝试,有不好的地方请指正哦,首先上成品...
    昱小面包阅读 390评论 0 1