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

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

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

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

(1) 创建一个 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();}
}

(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 】

1.15 Java冒泡排序法相关推荐

  1. Java 冒泡排序法

    冒泡排序法是交换排序法的一种 思想: /** * 冒泡法排序 * 比较相邻的元素.如果第一个比第二个小,就交换他们两个. * 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后 ...

  2. java冒泡排序法对数组进行排序

    public class test_BubbleSort {public static void main(String[] args) {//冒泡排序int[] arr = new int[]{5, ...

  3. java算法之冒泡排序法

    冒泡排序法 口诀:外层循环 0到n-1 //控制比较轮数 n 表示元素的个数内层循环 0到n-i-1 //控制每一轮比较次数两两比较做交换   冒泡排序的优点:每进行一趟排序,就会少比较一次,因为每进 ...

  4. 冒泡排序法(Java实现)

    冒泡排序法 ※ 冒泡排序法原理 对数组进行排序,冒泡排序法的原理就是将一组无序数组进行排序,同过把值较小的数逐渐向数组的顶部(即朝第一个元素)冒出来,就像水中的气泡上升一样.同时,值较大的数据逐渐向数 ...

  5. 冒泡排序法java代码

    package 数组; import java.util.Scanner; public class 冒泡排序法 {     public static void main(String args[] ...

  6. 冒泡排序python例题_零基础学python 15 经典算法:冒泡排序法(课后习题答案)...

    这节课我们对于冒泡排序法的课后习题进行一下解答: 回顾一下我们的题目: 上节课我们学习的冒泡排序法,是让我们的list从小到大进行排列,这次我们的任务是,请对冒泡排序法进行一定的修改,加一个参数,让它 ...

  7. java里冒泡排序编程案例_冒泡排序法-java案例详解

    /** * 功能:冒泡排序法 * 思想:通过对待排序序列从后向前(从下标较大的元素开始),依次比较相邻元素的排序码, * ,若发现逆序这交换,使得排序码较小的元素逐渐从后部移向前部(从下标较大的单元移 ...

  8. 冒泡排序c java c,冒泡排序,c语言冒泡排序法代码

    冒泡排序,c语言冒泡排序法代码 冒泡排序 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法. 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小.首字 ...

  9. Java:冒泡排序法

    冒泡排序法是最基本的排序法之一,冒泡排序法的运行机制是通过循环遍历元素并调整相邻元素顺序来实现的一种简单排序方法.冒泡排序的实质是相邻两个元素比较,然后按照升序或降序调换位置. 下为降序冒泡排序的代码 ...

最新文章

  1. 哪种修复redis未授权访问漏洞的方法是相对不安全的_关于Linux挖矿、DDOS等应急事件处置方法...
  2. centos php 开启libgdgd_CentOS搭建PHP环境
  3. error: ‘CV_BGR2RGB’ was not declared in this scope
  4. 新疆缺少计算机网络技术吗,新疆阿克苏职业技术学院的计算机网络技术专业好不?...
  5. 用计算机进行频谱分析时,实验四-利用FFT对信号进行频谱分析1112
  6. 安装百分之80卡住_关注丨男子翻越高铁站台丢命,家属向铁路部门索赔80万!法院这样判...
  7. 用随机投点法计算pi值matlab,用蒙特卡洛法求圆周率PI的近似值,其算法如下:使用随机函数Rnd,随机生成两个[0,1)之间的随机数,由此构成一个投点坐标(x,y),然后根据x...
  8. centOS restart xinetd
  9. lvs+keepalived+nginx实现高性能负载均衡集群 高性能jsp集群
  10. 主动土工围栏行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  11. Java 开发者希望未来使用 Python 和 Go
  12. [产品] 敏捷开发软件(一)——团队看板
  13. jieba 中文分词
  14. 定制通达信多周期同列版面
  15. 安装j2sdk以后,配置环境变量
  16. win10怎么设置无线网连接到服务器,win10wifi自动连接在哪里设置_win10设置自动连接wifi的方法...
  17. 光谱分辨率单位_【ENVI入门系列】16.基本光谱分析
  18. 计算机试图启动宏,打开电子表格时,将提示禁用或启用宏的解决方案
  19. 基于机器学习的笑脸检测
  20. 特斯拉“深陷”召回/监管调查,“高田气囊门”是前车之鉴

热门文章

  1. ML之预测:玩转2018世界杯—采用机器学习预测小组赛、十六比赛、四决赛、半决赛、决赛以及世界杯总冠军的各个队伍
  2. python爬虫抖某音爬取视频 Airtest+fiddler
  3. loadrunner与事务有关的函数
  4. libpcap抓取数据包
  5. 【hdu 1527】取石子游戏
  6. 内存不足导致mysql关闭,CentOS6.5增加swap分区
  7. UISegmentedControl swift
  8. 结对项目之需求分析与原型设计
  9. Xshell选中的同时把内容复制到剪贴板(还可以设置设置文本分隔符)
  10. STM32F103CB IAP+APP BIN文件合并烧写