第三十二章Java冒泡排序法

news/2024/11/29 6:31:30/

        冒泡排序(Bubble Sort)是常用的数组排序算法之一,它以简洁的思想与实现方法而备受青睐,也是广大学习者最先接触的一种排序算法。

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

        冒泡排序的算法比较简单,排序的结果稳定,但时间效率不太高。Java 中的冒泡排序在双层循环中实现,其中外层循环控制排序轮数,总循环次数为要排序数组的长度减 1。而内层循环主要用于对比相邻元素的大小,以确定是否交换位置,对比和交换次数依排序轮数而减少。

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

(1) 创建一个 Test24 类文件,在 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();}}

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

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

(3) 通过冒泡排序方法实现对 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("】");}
}

(4) 运行前面的代码进行测试,如下所示。

请输入第 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 】

http://www.ppmy.cn/news/676314.html

相关文章

如何使用Java进行压力测试?

使用Java进行压力测试可以使用一些流行的开源工具和库。下面是使用Apache JMeter进行压力测试的基本步骤&#xff1a; 下载和安装JMeter&#xff1a;首先&#xff0c;你需要从Apache JMeter官方网站&#xff08;https://jmeter.apache.org&#xff09;下载并安装JMeter。根据操…

python123照猫画虎求阶乘_单片机 - 21ic中国电子网

中国&#xff0c;2018年5月2日——意法半导体推出业界首款同时适用于单电阻采样和三电阻采样的低电压无刷电机驱动器STSPIN233。该电机驱动器纤巧紧凑&#xff0c;仅为3mm x 3mm的封装内集成有200mΩ的 1.3Arms功率级。 不仅如此&#xff0c;STSPIN233的待机电流也创下业内最低…

智能家居设备_您的智能家居设备正在监视您吗?

智能家居设备 In a world where we’re all paranoid about devices spying on us (and rightfully so), perhaps no other devices receive more scrutiny than smarthome products. But is that scrutiny warranted? 在一个我们都对监视设备的人都抱有偏执的世界(理应如此)&…

玩手机游戏哪款蓝牙耳机延迟低?新款高续航听声辨位蓝牙耳机推荐

对于爱玩游戏的小伙伴来说&#xff0c;手机里自然少不了安装几个流行手游。随着越来越多的手机取消了耳机孔&#xff0c;作为手游爱好者也只能搭配一款蓝牙耳机用于在游戏中进行体验。也许是刚推出前几年性能好&#xff0c;用着舒适的蓝牙耳机还不是很多&#xff0c;但是随着技…

一个MM的相亲经历

我今年23岁&#xff0c;2004年12月&#xff0c;我妈跟我说她单位同事要给我介绍对象&#xff0c;那时正好和我男友分手&#xff0c;所以答应见了。 那天下大雪&#xff0c;我去了妈妈单位经妈妈同事介绍与那个人见面了&#xff0c;我妈当时跟我说那个人1.72&#xff0c;但看到的…

三种近场通信技术的比较与分析

三种近场通信技术的比较与分析 一、WIFI二、BlueTooth三、NFC四、对未来近场通信技术的应用场景的分析与预测1、WIFI2、BlueTooth四、NFC 参考文章 一、WIFI WIFI简介&#xff1a; WiFi(Wireless Fidelity&#xff0c;无线保真技术)即IEEE 802&#xff0e;11协议&#xff0c;是…

硬件接口之IIS

I2S仅仅是PCM的一个分支&#xff0c;接口定义都是一样的&#xff0c; I2S的采样频率一般为44.1KHZ和48KHZ做&#xff0c;PCM采样频率一般为8K,16K。有四组信号: 位时钟信号&#xff0c;同步信号&#xff0c;数据输入&#xff0c;数据输出. I2S速度快&#xff0c;专门用于传音乐…

《光刻巨人》读书笔记

文章目录 书籍信息术语表ASML传记1962 - 19691970 - 19751976 - 19831983 - 198419841984 - 19861986 - 19871988 - 19901990 - 19921993 - 1996 书籍信息 书名&#xff1a;《光刻巨人&#xff1a;ASML崛起之路》 作者&#xff1a;&#xff08;荷&#xff09;瑞尼雷吉梅克 资料…