冒泡排序(Bubble Sort)

它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。

原理如果不明白,可以直接看下面的运行结果,比较容易懂。

代码

public static void bubbleSort(int[] array) {int temp = 0;boolean flag = false;for(int i = 0; i < array.length - 1; i ++) {for(int j = 0; j < array.length - 1 - i; j ++) {if(array[j] > array[j + 1]) {flag = true;temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}System.out.println("第" + (i+1) + "次排序后结果: " + Arrays.toString(array));if(!flag) {//优化break;}flag = false;}//System.out.println(Arrays.toString(array));}

结果

[8, 9, 1, 7, 2, 3, 5, 4, 6, 0]
第1次排序后结果: [8, 1, 7, 2, 3, 5, 4, 6, 0, 9]
第2次排序后结果: [1, 7, 2, 3, 5, 4, 6, 0, 8, 9]
第3次排序后结果: [1, 2, 3, 5, 4, 6, 0, 7, 8, 9]
第4次排序后结果: [1, 2, 3, 4, 5, 0, 6, 7, 8, 9]
第5次排序后结果: [1, 2, 3, 4, 0, 5, 6, 7, 8, 9]
第6次排序后结果: [1, 2, 3, 0, 4, 5, 6, 7, 8, 9]
第7次排序后结果: [1, 2, 0, 3, 4, 5, 6, 7, 8, 9]
第8次排序后结果: [1, 0, 2, 3, 4, 5, 6, 7, 8, 9]
第9次排序后结果: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

时间复杂度和稳定性

由于冒泡排序中用到两次for循环,忽略T(n)系数和低次项,可知时间复杂度为O(n^2)。

由原理和程序可知,冒泡排序是稳定的。(相同元素在排序前后的顺序一致)

Java排序算法——冒泡排序 及其稳定性和时间复杂度相关推荐

  1. Java排序算法——插入排序(Insertion Sort)

    之前总结了交换排序的冒泡排序与选择排序的简单选择排序,这次我们来看看插入排序的简单插入排序~ 往期传送门: 冒泡排序: Java排序算法--冒泡排序(Bubble Sort)https://blog. ...

  2. Java十大排序算法总结,Java排序算法总结之冒泡排序

    本文实例讲述了Java排序算法总结之冒泡排序.分享给大家供大家参考.具体分析如下: 前言:冒泡排序(BubbleSort)就是依次比较相邻的两个数,将小数放在前面,大数放在后面. 下面让我们一起    ...

  3. Java排序算法:冒泡排序

    Java排序算法:冒泡排序 //创建数组并赋值int[] data = new int[] {11,10,55,78,100,111,45,56,79,90,345,1000};for(int i=0 ...

  4. java排序算法(插入排序,冒泡排序,选择排序)

    java排序算法(插入排序,冒泡排序,选择排序) 先了解原理,然后自己跟着敲一下,加深印象 CMD编译命令:javac -encoding utf-8 SortList.java && ...

  5. Java排序算法——选择排序

    Java排序算法--选择排序(Selection sort) 传送门 冒泡排序 插入排序 简述 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理如下.首先在未排序序列中找 ...

  6. 如果我问你:排序算法的「稳定性」有何意义?你怎么回答?

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"加群"加入公众号专属技术群 欢迎跳转到本文的原文链接:https://honeypps ...

  7. Java排序算法之直接选择排序

    Java排序算法之直接选择排序 基本过程:假设一序列为R[0]~R[n-1],第一次用R[0]和R[1]~R[n-1]相比较,若小于R[0],则交换至R[0]位置上.第二次从R[1]~R[n-1]中选 ...

  8. 排序算法——冒泡排序(Bubble Sort)

    排序算法--冒泡排序(Bubble Sort) 算法简介(Introduction) Bubble sort is to compare adjacent elements of the list a ...

  9. python排序算法 ——冒泡排序(附代码)

    python排序算法 --冒泡排序 文章目录 python排序算法 --冒泡排序 一.前言 二.算法描述 三.代码实现 总结 一.前言 相关知识来自<python算法设计与分析>.初级排序 ...

最新文章

  1. 计算机界最大“追书坑”,82岁大神高德纳仍在写《计算机程序设计艺术》4B卷...
  2. 循序渐进Python3(二) -- 数据类型
  3. 原生 遍历_细品原生JS从初级到高级知识点汇总(三)
  4. 60个数据窗口技巧(转)
  5. 翻译连载 | 附录 A:Transducing(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇...
  6. 《深入理解java虚拟机》第1章 走近Java
  7. 【C++基础学习】二维数组的动态分配及参数传递
  8. LeetCode: Substring with Concatenation of All Words
  9. 13. CSS 链接
  10. cygwin--简单备忘
  11. 用css+jquery实现视频永远占满全屏效果
  12. 全面了解决策管理平台
  13. 高德地图api使用过程出现崩溃
  14. Yolov5学习笔记(1)——训练出自己的模型
  15. PyTorch基础:Tensor的自动广播机制与向量化
  16. 数据库范式1NF 2NF 3NF BCNF通俗讲解
  17. LVGL8的窗口切换方式
  18. 【Bug修复】Room数据库 The columns returned by the query does not have the fields......
  19. Frustum culling
  20. 数据分析实战——城市餐饮店铺选址分析(1)

热门文章

  1. web移动端适配(一)基本概念
  2. C语言 do while语句的用法
  3. 05 矩阵04——分块矩阵的初等变换、分块初等矩阵的性质
  4. 很有素质的骂人方法 = =!
  5. 用图像分割制作专属表情包?这里有妙招!
  6. 解决sougo输入法在Ubuntu下汉字输入出现数字代码的问题
  7. Ubuntu 20.04 下 部署 SoftEther
  8. java汇编指令查看工具jitwatch
  9. 项目管理-7-降妖除魔
  10. pythonic风格_如何写出Pythonic风格的代码