冒泡排序原理:我觉得类似于拍集体照的时候老师指挥按大小个排队

依次比较两个相邻的数组元素、满足交换条件就交换二者位置,不满足就继续向下比较。


冒泡排序原理动态图(摘自网络)


Demo代码

//冒泡排序(正序)
int[] arr = {3, 13, 11, 9, 8, 1, 6, 10};for (int i = 0; i < arr.length; i++) {//定义flag可以提升效率,避免已经排序完成还继续做无用循环boolean flag = true;for (int j = 0; j < arr.length - 1; j++) {if (arr[j] > arr[j + 1]) {//将arr[j+1]赋给临时变量int temp = arr[j + 1];//交换二者位置arr[j + 1] = arr[j];arr[j] = temp;//标识排序未完成,继续循环flag = false;}}if (flag) {break;}System.out.println("第" + (i + 1) + "次排序结果:" + Arrays.toString(arr));
}System.out.println("最终结果:" + Arrays.toString(arr));

不定义flag的输出结果(循环了8次)

定义flag的输出结果(循环了5次)

排序算法(一)——冒泡排序原理及Java实现相关推荐

  1. 【排序算法】冒泡排序原理及Java实现

    1.基本思想 冒泡排序顾名思义就是整个过程像气泡一样往上升,单向冒泡排序的基本思想是(假设由小到大排序):对于给定n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时, ...

  2. 【排序算法】快速排序原理及Java实现

    1.基本思想: 快速排序是我们之前学习的冒泡排序的升级,他们都属于交换类排序,都是采用不断的比较和移动来实现排序的.快速排序是一种非常高效的排序算法,它的实现,增大了记录的比较和移动的距离,将关键字较 ...

  3. 排序算法(1)冒泡排序

    排序算法(1)冒泡排序 原理: 1.比较相邻的元素.如果第一个比第二个大,就交换他们两个. 2.对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 3. ...

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

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

  5. 排序算法之冒泡排序(Java版)

    排序:即使集合或数组中的元素有序化 本篇介绍最简单.最易掌握的冒泡排序 冒泡排序:         是一种简单的排序算法, 冒泡排序就像学生站队一样,要在老师的引导下,以某位同学位基准,其他学生按身高 ...

  6. 排序算法:冒泡排序、插入排序、选择排序、希尔排序

    相关博客: 排序算法:冒泡排序.插入排序.选择排序.希尔排序 排序算法:归并排序.快速排序 排序算法:桶排序.计数排序.基数排序 排序算法:堆排序 十大排序算法小结 一.冒泡排序: 1.算法原理: 冒 ...

  7. 终于,把十大经典排序算法汇总了!(Java实现版)

    转载自  终于,把十大经典排序算法汇总了!(Java实现版) 最近几天在研究排序算法,看了很多博客,发现网上有的文章中对排序算法解释的并不是很透彻,而且有很多代码都是错误的,例如有的文章中在" ...

  8. 十大排序算法:冒泡排序、选择排序、插入排序、希尔排序、归并排序、快速排序、堆排序、计数排序、桶排序、基数排序

    冒泡排序.选择排序.插入排序.希尔排序.归并排序.快速排序.堆排序.计数排序.桶排序.基数排序的动图与源代码. 目录 关于时间复杂度 冒泡排序 选择排序 插入排序 希尔排序 归并排序 快速排序 堆排序 ...

  9. 堆排序稳定性举例_最常用的 8 个排序算法:从原理到改进,再到代码兑现透彻解析...

    1. 关于排序 很高兴与大家一起探讨计算机科学中的基础算法之排序算法.排序算法是非常基础同时又应用非常广泛的算法,无论在工作还是在生活中,比如: 数据库脚本,如MSSql, MySql, NoSql ...

  10. 算法基础:排序算法之冒泡排序

    算法基础:排序算法之冒泡排序 实现:数列有序排序 思想:已知一个数列,令数列中相邻的两个元素一一做比较,按照小大的顺序(或从大到小的顺序),如果前一个数比后一个数大(或后一个数比前一个数大),则互换( ...

最新文章

  1. 一件有趣的事:用Python爬了自己的微信朋友圈
  2. 重整谋定电商经信研究新格局-李玉庭:人工智能精细化运营
  3. JPA休眠替代方案。 如果JPA或Hibernate对于我的项目而言不够好,该怎么办?
  4. 前端学习(3251):dom的diff算法2
  5. 循环所有数据库执行脚本
  6. css如何调整红心样式_CSS3跳动的红心
  7. IQueryable接口与IEnumberable接口的区别
  8. Android 系统(236)---了解 64 位版本
  9. 深度学习(4) - 神经网络和反向传播算法
  10. 如何在本地管理和切换多个 github 账号?
  11. python交叉验证结合线性回归_Python数据分析-线性回归、逻辑回归
  12. STM32 IWDG时间计算方法
  13. PHP正则表达式的快速学习方法
  14. 线性调频信号学习笔记
  15. java中json获取key值_如何获取JsonObject中key的值
  16. springcloud微服务学习笔记(四十五):Gateway9527搭建
  17. php 页面字体大小,网页中各种设置字体大小的方法总结
  18. 美团外卖【成都】技术团队,招人啦!
  19. EBS日记账冲销API
  20. 打造有企业特色的ERP

热门文章

  1. 直击进博会 | 丹佛斯、法孚、诺华、诺和诺德、波士顿科学、欧加隆、冯氏集团、阿迪达斯等在华签约合作...
  2. Dagger2 简介
  3. linux 用户名和密码的处理
  4. 休斯敦大学计算机学院网址,李大学(学院)
  5. 多区域复制——《超级处理器》应用
  6. cgb2110-day01
  7. springboot2.0优雅关闭
  8. 重庆市计算机专业高考试题,职业高中高考计算机专业试卷4
  9. webstorm注册码
  10. MySQL 基于MyCAT配置数据分片