文章目录

  • 一,冒泡排序简介
    • 算法原理
  • 二,程序实现
  • 三,程序运行结果

一,冒泡排序简介

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。

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

这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

算法原理

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

二,程序实现

package Example;/*** 功能:冒泡排序* 作者:小梁aixj* 日期:2022年04月02日*/
public class Example29 {public static void main(String[] args) {int[] arr = {9, 8, 3, 5, 2};System.out.print("冒泡排序前:");printArray (arr);                             //打印数组元素bubbleSort (arr);                             //调用排序方法System.out.print("冒泡排序后:");printArray (arr);                             //打印数组元素}//定义打印数组元素的方法public static void printArray (int[] arr) {//循环遍历数组的元素for (int i = 0; i < arr.length; i++) {System.out.print(arr[i] + " ");           //打印元素和空格}System.out.print("\n");}//定义对数组排序的方法public static void bubbleSort (int[] arr) {//定义外层循环for (int i = 0; i < arr.length - 1; i++) {//定义内层循环for (int j = 0; j < arr.length - i - 1; j++) {if (arr[j] > arr[j + 1]) {                  //比较相邻元素//下面的三行代码用于交换两个元素int temp = arr[j];arr[j] = arr[j + 1];arr[j + 1] = temp;}}System.out.print("第" + (i + 1) + "轮排序后:");printArray(arr);                                //每轮比较结束打印数组元素}}
}

三,程序运行结果

Java编程 | 冒泡排序相关推荐

  1. java里冒泡排序编程案例_java编程题:用Java实现一个冒泡排序算法

    /** * java编程题:用Java实现一个冒泡排序算法 */ public class Test12 { public static void main(String[] args) { int[ ...

  2. 交换最大数与最小数java编程_善知教育笔记之JavaSE_Java编程基础

    1 Java编程基础 1.1 变量 1.1.1 变量 变量是什么?为什么为用变量? 变量就是系统为程序分配的一块内存单元,用来存储各种类型的数据.根据所存储的数据类型的不同,有各种不同类型的变量.变量 ...

  3. Java实验01 Java编程基础(猜数字游戏、随机点名器)

    实验一 Java编程基础 实验1-1 随机点名器 一.实验描述 1. 任务描述 编写一个随机点名的程序,使其能够在全班同学中随机点中某一名同学的名字.随机点名器具备3个功能,包括存储全班同学姓名.总览 ...

  4. Java编程题小练习(初级):输入10个整数并进行排序输出。

    程序代码: package com.xingzhao.Test; /** 题目描述:输入10个整数,排序后输出.* * 分析:* 1.输入10个整数,存储为数组* 2.使用冒泡排序法将数组排序* 3. ...

  5. Java编程-福利上线2021国庆前夕大共享

    国庆前夕,举国欢庆.为自学Java的同学送上福利,Java编程从入门到实战 编程事业和学业的猛速增进,再次为大家提供一套,学习Java编程的福利. 看着别人高薪就业??不如利用国庆来为自己生活做个变化 ...

  6. Java编程教程大全

    Java编程语言 Java编程语言中,左侧的导航栏(Java编程语言),可以快速定位文章的内容.这篇文章主要汇总以下: Java编程语言学习:Java的概述,Java的接口和抽象类,Java的思想,J ...

  7. 除了java还学什么_学好Java编程除了努力还需要具备什么?

    Java编程语言的热流席卷了全球,它的出现摆脱了C语言尾大不掉的困境,灵活.多变,塑造性强的特点不仅符合当下互联网的发展趋势,也得到一批批青年俊才的青睐,Java编程抛出的橄榄枝,也吸引了大量计算机专 ...

  8. 偏执却管用的 10 条 Java 编程技巧

    经过一段时间的编码(咦,我已经经历了将近20年的编程生涯,快乐的日子总是过得很快),我们开始感谢那些好习惯.因为,你知道- "任何可能出错的事情,最后都会出错." 这就是人们为什么 ...

  9. 学习Java编程培训的书籍有哪些

    学习java技术除了线上线下的培训学习,书籍的知识也是非常重要的,今天小编为大家整理的就是学习Java的一些书籍,Java书籍是程序员学习提升技能的重要学习渠道,通过书籍Java程序员可以学习当前流行 ...

最新文章

  1. java中字节输入流和输出流的简单使用例子
  2. Skype For Business 2015 综合部署系列一:Skype 环境需求及部署规划
  3. Eclipse新建Maven项目没有web.xml
  4. 构想:中文文本标注工具(内附多个开源文本标注工具)
  5. delphi函数,识别字符集编码
  6. VC实现在ListBox中选择背景位图
  7. RHEL/CentOS 7中安装并配置 PowerDNS 和 PowerAdmin
  8. java tcp链接慢_jmeter tcp长连接性能测试
  9. 通过人脸测试心率和呼吸率
  10. Vue中watch的使用
  11. excel mac 水晶球_水晶球软件使用crystalball.pptx
  12. springboot实现图片验证码登录
  13. 分享几个设计精美电路图的工具
  14. linux配置文件前面有分号,linux中的分号 ||
  15. css实现简单几何图形
  16. zh-cn、en-us、zh-tw等表示语言(文化)代码与国家地区对照表
  17. 汇编语言|实例1——大写字母转换成小写字母
  18. 新浪微博爬虫-抓取用户发布的微博
  19. Lesson 18 He often does this! 他经常干这种事!
  20. K2 BPM介绍(1)

热门文章

  1. 如何实现直接执行源代码
  2. 计算机系自动化系,范静涛 -清华大学自动化系
  3. 聚合支付的原理是什么?
  4. Android线程和线程池(二)HandlerThread学习记录 使用+源码
  5. P34 字符串类型的函数讲解
  6. 阿里校招(数据开发)一面总结
  7. CSS绝对路径与相对路径
  8. 正点原子STM32——LCD学习笔记(2)
  9. android 视频 surface view,Android下的视频播放编程-SurfaceView重显时的问题
  10. python的编程笔记-001