冒泡排序(Bubble Sort)是常用的数组排序算法之一

冒泡排序


提示:冒泡排序的基本思想是:对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素值移动到数组后面(也就是交换两个元素的位置),这样数组元素就像气泡一样从底部上升到顶部。


获取用户在控制台输入的 5 个成绩信息,将这些成绩保存到数组中,然后对数组应用冒泡排序,并输出排序后的结果,实现步骤如下。

一、

示例:创建一个 Test 类文件,在 main() 方法中开始编码。首先创建 Scanner 类的实例后声明 double 类型的 score 数组,然后接收用户在控制台输入的成绩,并保存到元素中。
代码如下(示例):

public static void main(String[] args) {Scanner scan = new Scanner(System.in);double[] score = new double[5];for (int i = 0; i < score.length; i++) {System.out.print("请输入第 " + (i + 1) + " 个成绩:");score[i] = scan.nextDouble();}
}

二、
示例:在对 score 数组排序之前,首先输出数组中各个元素的值。
代码如下(示例):

System.out.println("排序前的元素值:");
for(double val:score) {System.out.print(val+"\t");
}
System.out.println();

三、
通过冒泡排序方法实现对 score 数组的排序,在实现时需要借助一个临时变量
代码如下(示例):

public static void main(String[] args) {System.out.println("通过冒泡排序方法对数组进行排序:");for (int i = 0; i < score.length - 1; i++) {// 比较相邻两个元素,较大的数往后冒泡for (int j = 0; j < score.length - 1 - i; j++) {if (score[j] > score[j + 1]) {double temp = score[j + 1]; // 把第一个元素值保存到临时变量中score[j + 1] = score[j]; // 把第二个元素值转移到第一个元素变量中score[j] = temp; // 把临时变量(第一个元素的原值)保存到第二个元素中}System.out.print(score[j] + " "); // 对排序后的数组元素进行输出}System.out.print("【");for (int j = score.length - 1 - i; j < score.length; j++) {System.out.print(score[j] + " ");}System.out.println("】");}
}

四、
运行前面的代码进行测试,如下所示。

请输入第 1 个成绩:77
请输入第 2 个成绩:90
请输入第 3 个成绩:68
请输入第 4 个成绩:59
请输入第 5 个成绩:80
排序前的元素值:
77.0    90.0    68.0    59.0    80.0
通过冒泡排序方法对数组进行排序:
77.0 68.0 59.0 80.0 【90.0 】
68.0 59.0 77.0 【80.0 90.0 】
59.0 68.0 【77.0 80.0 90.0 】
59.0 【68.0 77.0 80.0 90.0 】

java数组冒泡排序相关推荐

  1. java 数组冒泡排序、转置(降序)

    1.java 数组冒泡排序 排序的基本原理(升序): 原始数据:  2 .1 .9 .0 .5 .3 .7 .6 .8: 第一次排序: 1  .2 .0 .5 .3 .7 .6 .8 .9 : 第二次 ...

  2. java数组冒泡排序法编程_java实现数组冒泡排序的方法

    java实现数组冒泡排序的方法 发布时间:2020-06-24 09:21:42 来源:亿速云 阅读:82 作者:Leah 本篇文章展示了java实现数组冒泡排序的具体操作,代码简明扼要容易理解,绝对 ...

  3. 大牛深入讲解!java数组冒泡排序从小到大

    2021全新Java核心知识 由于内容过多,本文篇幅有限,因此小编就不详细展示了,请各位老铁认真的看完本文内容,你一定会有所收获! Java篇目录内容(涵盖Java基础及核心技术.容器.并发.JVM技 ...

  4. 6.1_[Java 数组]-数组与二重循环和鸡兔同笼及冒泡排序

    ################################################## 目录 循环热身 前言 三种循环 数组循环接收数据并使用 for 循环遍历输出 利用 for 循环结 ...

  5. Java数组和冒泡排序

    Java数组 数组分一维数组.二维数组和多维数组. 以下详细讲解的是一维数组和简单的冒泡法. 需知Java中数组长度一经定义,固定不变. 一般数组初始化(声明并指定数组长度) 数组的内存模型详解 基础 ...

  6. java数组、集合和数据结构知识*

    为什么80%的码农都做不了架构师?>>>    一.数据结构知识.数据结构分为逻辑结构和物理结构,下面是百度百科的数据结构知识. 数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结 ...

  7. Java数组相关知识

    Java数组 1. 数组概述 2. 数组声明与创建 3. 数组初始化和内存分析 4. 数组的下标越界问题 5. 数组使用 6. 多维数组 7. Arrays类 8. 冒泡排序 9. 稀疏数组 1. 数 ...

  8. java 数组详解_java_day03:数组详解

    1.数组的概述和特点 1.1 数组的慨念 数组概念:数组是一种能够存放相同数据类型的有序集合. 编程的基本功: 数据结构和算法 数据结构:数组,链表,栈,队列,图,哈希表,二叉树 1.2 数组的创建 ...

  9. Java数组学习笔记(遍历、排序、多维数组、命令行参数)

    文章目录 数组的遍历和快速打印 冒泡排序和快速排序 数组和字符串排序的区别 多维数组建立和输出 命令行向main()传递参数 数组的遍历和快速打印 一.数组的遍历 数组的遍历有两种方法,一种是使用fo ...

最新文章

  1. 使用指针输入输出一维数组
  2. 【数字信号处理】序列傅里叶变换 ( 基本序列的傅里叶变换 | 求 1 的傅里叶变换 )
  3. vue实战记录(二)- vue实现购物车功能之创建vue实例
  4. Spring Boot 应用监控:Actuator与 Admin
  5. 网校mysql设计规范_网校数据库设计
  6. 2018.07.11 线段树基本模板复习
  7. [置顶]       推荐一款好用的jquery弹出层插件——wbox
  8. SAP OData服务性能测量的四种办法
  9. android 电源管理 wakelock 唤醒锁机制
  10. springboot 技术图谱_java后台(Springboot)开发知识图谱高频技术汇总-学习路线...
  11. Codeforces Round #343 (Div. 2) A. Far Relative’s Birthday Cake 水题
  12. ASP.NET报错:failed due to the following error: 8000401a.
  13. 可视化神经网络实验报告,可视化神经网络工具
  14. 一次性解决所有需求变更相关的问题(赠需求变更管理流程图)
  15. RAID磁盘阵列相关技术详解
  16. 副高级职称的要求真的很难达到吗?
  17. WiFi大师4.0.5源码最新独立版本
  18. 涂抺mysql 李丙洋_涂抹
  19. html方框打勾字段,word文档怎么输入带方框的对勾
  20. PAT1003 我要通过! (20 分)(C语言)

热门文章

  1. linux测试服务器带宽的几种方法
  2. 基于离散三点计算曲率圆的方法
  3. React Router 升级 v6: Redirect 重定向替代方案
  4. vue+element实现图片上传及裁剪功能(vue-cropper)
  5. 奇幻诡异画中画 别让眼睛上了当(10)
  6. 公司如何做好舆情监控,舆情监控解决方案有哪些?
  7. Win10系统将“此处打开PowerShell窗口”更改为“在此处打开命令窗口
  8. 前端富文本编辑器哪家强?我推荐Quill,搭配丰富插件使用美滋滋
  9. Linus系统上网及密码破解
  10. Lua调用外部脚本_艾孜尔江撰