一,算法原理

冒泡排序是交换排序的一种,原理是通过比较相邻两个元素的大小,如果发现顺序不对,就交换这两个元素的位置。当第一次循环结束时,最大的元素就被筛选出来,然后进入第二次循环,以此类推,直到没有任何一对数据进行比较。

下面看一个案例:

假设有5个数字,依次为:5,4,6,3,1

用冒泡排序的思想来实现的话,过程是这样的:

外层第一次循环:

4,5,6,3,1 -> 4,5,6,3,1 -> 4,5,3,6,1 -> 4,5,3,1,6找到最大数6

外层第二次循环:

4,5,3,1,6 -> 4,3,5,1,6 -> 4,3,1,5,6找到倒数第二大的数字5

外层第三次循环:

3,4,1,5,6 -> 3,1,4,5,6

外层第四次循环:

1,3,4,5,6

至此排序完成。

二,Java代码实现public class Demo1 {

public static void main(String[] args) {

int[] arr = {5,4,6,3,1};

//创建一个Bubble类

Bubble bubble = new Bubble();

bubble.sort(arr);

//输出最后结果

for(int i=0;i

{

System.out.print(arr[i]+" ");

}

}

}

//冒泡排序

class Bubble{

//排序方法

public void sort(int arr[])

{

int temp=0;

//排序

//外层循环,表示一共走几次

for(int i=0;i

{

//内层循环,开始逐一比较,如果发现前一个数字比后一个数字大,则交换

for(int j=0;j

{

if(arr[j]>arr[j+1])

{

//换位

temp=arr[j];

arr[j]=arr[j+1];

arr[j+1]=temp;

}

}

}

}

}

运行结果为:1 3 4 5 6

java冒泡排序经典代码6_经典排序算法之冒泡排序相关推荐

  1. 冒泡排序c++代码_八大排序算法(解释+代码+结果+算法优化)

    >>>欢迎点赞,收藏,转发! 评论区获取源代码与更多更全干货!<<< 排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,不需要访问外存便能完成 ...

  2. 十大经典排序算法之冒泡排序【一】

    [冒泡排序](Bubble Sort) a)       原理 冒泡排序是最简单的排序算法.它依次比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,它重复的查询所要排序的数列.查询数列的工作直到 ...

  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版)

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

  5. 【排序算法】冒泡排序、简单选择排序、直接插入排序比较和分析

    [排序算法]冒泡排序.简单选择排序.直接插入排序比较和分析 写在前面: 本文简单介绍了冒泡排序.简单选择排序.直接插入排序,并对这三种排序进行比较,入参都是80000个随机数,比较算法耗时.进一步,我 ...

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

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

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

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

  8. 排序算法之冒泡排序及鸡尾酒排序

    目录 一.排序算法的分类 二.冒泡排序 1.原始的冒泡排序 2.改进一步的冒泡排序 3.更进一步的冒泡排序 三.鸡尾酒排序 四.完整测试代码 一.排序算法的分类 在介绍排序算法之前,我们先根据时间复杂 ...

  9. 我们一起来排序——使用Java语言优雅地实现常用排序算法

    破阵子·春景 燕子来时新社,梨花落后清明. 池上碧苔三四点,叶底黄鹂一两声.日长飞絮轻. 巧笑同桌伙伴,上学径里逢迎. 疑怪昨宵春梦好,元是今朝Offer拿.笑从双脸生. 排序算法--最基础的算法,互 ...

最新文章

  1. 枚举(Enumerations)
  2. 7篇Nature,2篇Science!这所985高校迎来顶刊大丰收
  3. 6.extern “c”
  4. python中curve fit_在python中拟合多变量curve_fit
  5. Windows Mobile 5 编程体验4
  6. 浅析:提升手机APP开发和运营成效的经验分享
  7. MAC 下的SVN客户端 Versions、SmartSVN、Cornerstone
  8. Semantic UI 之 下拉菜单 dropdown
  9. 小学-知识与能力【5】
  10. 使用版本控制软件TortoiseSVN对程序和文档进行控制的说明
  11. CS231n课程笔记翻译2:图像分类笔记
  12. 大蟒蛇python头像_Python微信好友头像大拼图案例
  13. Android scroller控件,Android Scroller完全解析
  14. 我的大学-5-34-林陆
  15. 新年亲朋好友最经典的“互相伤害”,你中过几条?
  16. 华为linux系统安装包,一、Linux系统安装
  17. opencv_contrib安装笔记
  18. 开启cdn后导致websocket10秒直接断开连接 报错1006
  19. mysql 代码书写,【单选题】mysql 的代码书写规则是() A. 不区分大小写 B. 必须全部大写 C. 必须全部小写 D. 以上答案都不对...
  20. java 简述类变量和实例变量的区别

热门文章

  1. Pentium 4处理器架构/微架构/流水线 (2) - SSE2
  2. GLSurfaceView基础学习笔记
  3. 我的 计算机朋友作文,电脑我的朋友作文
  4. js如何提高for循环的效率_如何提高rv减速机的散热效率
  5. MySQL存储过程的使用
  6. accept 返回0_使用Vue3.0新特性造轮子 WidgetUI3.0 (Upload上传文件组件)
  7. 挑战Unity、UE4,曾戈祭出次世代VR引擎
  8. laravel 5 自定义全局函数,怎么弄呢?
  9. Android模块化之MicroModule(微信Pins工程)
  10. JS String 对象 常用方法