Java冒泡排序代码实现

Java冒泡排序代码实现Java冒泡排序代码实现原理:比较两个相邻的元素,将值大的元素交换至右端。思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。举例说明:要排序数组:int[] arr={6,3,8,2,9,1};…

大家好,又见面了,我是你们的朋友全栈君。

Java冒泡排序代码实现

原理:比较两个相邻的元素,将值大的元素交换至右端。

思路:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复第一趟步骤,直至全部排序完成。

举例说明:要排序数组:int[] arr={6,3,8,2,9,1};   

第一趟排序:

    第一次排序:63比较,6大于3,交换位置:  3  6  8  2  9  1

    第二次排序:68比较,6小于8,不交换位置:3  6  8  2  9  1

    第三次排序:82比较,8大于2,交换位置:  3  6  2  8  9  1

    第四次排序:89比较,8小于9,不交换位置:3  6  2  8  9  1

    第五次排序:91比较:9大于1,交换位置:  3  6  2  8  1  9

    第一趟总共进行了5次比较, 排序结果:      3  6  2  8  1  9

———————————————————————

第二趟排序:

    第一次排序:36比较,3小于6,不交换位置:3  6  2  8  1  9

    第二次排序:62比较,6大于2,交换位置:  3  2  6  8  1  9

    第三次排序:68比较,6大于8,不交换位置:3  2  6  8  1  9

    第四次排序:81比较,8大于1,交换位置:  3  2  6  1  8  9

    第二趟总共进行了4次比较, 排序结果:      3  2  6  1  8  9

———————————————————————

第三趟排序:

    第一次排序:32比较,3大于2,交换位置:  2  3  6  1  8  9

    第二次排序:36比较,3小于6,不交换位置:2  3  6  1  8  9

    第三次排序:61比较,6大于1,交换位置:  2  3  1  6  8  9

    第二趟总共进行了3次比较, 排序结果:         2  3  1  6  8  9

———————————————————————

第四趟排序:

    第一次排序:23比较,2小于3,不交换位置:2  3  1  6  8  9

    第二次排序:31比较,3大于1,交换位置:  2  1  3  6  8  9

    第二趟总共进行了2次比较, 排序结果:        2  1  3  6  8  9

———————————————————————

第五趟排序:

    第一次排序:21比较,2大于1,交换位置:  1  2  3  6  8  9

    第二趟总共进行了1次比较, 排序结果:  1  2  3  6  8  9

———————————————————————

最终结果:1  2  3  6  8  9

———————————————————————

冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进行一趟排序都会找出一个较大值。如上例:第一趟比较之后,排在最后的一个数一定是最大的一个数,第二趟排序的时候,只需要比较除了最后一个数以外的其他的数,同样也能找出一个最大的数排在参与第二趟比较的数后面,第三趟比较的时候,只需要比较除了最后两个数以外的其他的数,以此类推……也就是说,没进行一趟比较,每一趟少比较一次,一定程度上减少了算法的量。

Java冒泡排序代码实现

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/148279.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • MATLAB矩阵复制及扩充

    MATLAB矩阵复制及扩充文章目录一、repmat()方法二、Kron()方法一、repmat()方法例一:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)TIPS:【原矩阵】处可用用户自定义的矩阵变量代替   即Mat=[123;456],可用Mat替代function中原矩阵的位置例二:(行方向和列方向分别平铺矩阵,红框2,3表示平铺倍数)例三:(列方向平铺矩阵,红框2表示平铺矩阵的倍数)例四:(行方向平铺矩阵,红框3表示平铺矩阵的倍数)二、Kron()方法kron(A,B)

    2022年6月25日
    169
  • 博弈论案例分析题及答案_微软技术支持面试题

    博弈论案例分析题及答案_微软技术支持面试题相信下面这个问题很多人都见过,博弈论中经典案例–“强盗分金”,测试一下自己的逻辑是否正确五个海盗抢到了100颗宝石,每一颗都一样大小和价值连城。他们决定这么分:  抽签决定自己的号码(1、2、3、4、5)  首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案  进行分配,否则将被扔进大海喂鲨鱼  如果1号死后,…

    2022年10月16日
    3
  • ANSYS ICEM CFD 网格划分步骤简要总结[通俗易懂]

    ANSYS ICEM CFD 网格划分步骤简要总结[通俗易懂]

    2022年5月9日
    38
  • 基于stm32门禁系统_老式门禁

    基于stm32门禁系统_老式门禁0、前言RC522射频门禁识别模块非常常用,某宝卖家提供的程序基本都是使用软件模拟SPI的方式进行驱动的,但是实测使用软件模拟SPI识别速率、准确性没有硬件SPI驱动时高,因此本篇博客用于记录使用STM32硬件SPI驱动RC522门禁模块。1、硬件连接单片机:STM32F103RCT6硬件接口:SPI2MISO->PB14(主机输入,从机输出)MOSI->PB15(主机输出,从机输入)SCK->PB13(时钟信号SCLK)SDA->PC

    2022年9月16日
    4
  • 同学说年薪30w豆瓣_朋友圈集赞怎么写

    同学说年薪30w豆瓣_朋友圈集赞怎么写我们经常在朋友圈中看到有人发这样的消息:或者,许久不联系的好友突然发消息说:「帮忙朋友圈第一条点赞~谢谢~」这样的朋友圈消息屡见不鲜,他们无非是想兑换一些不值钱的小奖品,来满足自己「占便宜」的心理。你…

    2025年9月19日
    4
  • android apk获取系统签名[通俗易懂]

    android apk获取系统签名[通俗易懂]android打包系统APK一准备材料1signapk包1)通常在源码环境的build\tools\signapk目录下,包含如下文件:拿到上述文件之后还不能直接签名,需要将signapk编译,生成一个signapk.jar包,步骤如下:把signapk放到E盘(E:\signapk),命令行cd到此目录下(signapk.java代码目录)下执行:E:\signapk>…

    2022年6月21日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号