java排序之冒泡排序

使用JAVA进行冒泡排序,选择排序 目录 使用JAVA自带的数组工具类进行排序 冒泡排序 选择排序 使用JAVA自带的数组工具类进行排序 从小到大输出: //JAVA中自带的数据工具包 import java.util.Arrays; public class 排序 { public static void main(String[] args) { //静态齿初始化一个一维数组 int[] array = {1,2,77,34,5,999,7,8,399}; 阅读详情

假设一篮球队,成一队列排列在篮球场上,每个人的身高都不相同,这样的话就会成下面这种

 现在呢,要对他们以身高进行排列让他们成下面这种情况

 

采用冒泡排序的方式历程如下:熊队列的最左边第一位(简称左一)起,让他与最左边第二位(左二)进行比较,如果左一的身高高于左二,那么让左一与左二调换位置;接下来对比左二与左三,如果左二的身高比左三高,那么调换左二与左三的位置,一下以此类推直到左n-1与左n对比,那么第一轮过去,就可以把最高的队员排列在队伍的最右边;接下来在从左一开始与左二对比,左二与做三对比,依次类推;由于第一轮对比的时候呢队伍最高的队员已经排列在最右边,那么这一轮对比就可以不用比较最右边那一位,那么第二轮就可以找到第二高的人排列在队伍的右二位!依次从左一左二对比,循环下来直到队伍的最后一位是排列在左一!这样的比较总是会“冒泡”出当前没有排列的最高队员,这就是被称为冒泡排序的原因。

下面,上代码:

public class BubbleSort {
    private  long[] a;
    private  int nElems;
    public BubbleSort(int maxNo) {
        a = new long[maxNo];
        nElems = 0;
    }
    public void insert(long value) {
        a[nElems] = value;
        nElems++;
    }
    public void display() {
        for (int j = 0; j < nElems; j++) {
            System.out.println(a[j]+"");
        }
        System.out.println("");
    }

    public void swap(int one , int two) {
        long temp ;
        temp = a[one];
        a[one] = a[two];
        a[two] = temp;
    }

    public void bubbleSortApp() {
        int out , in ;
        for (out = nElems; out < nElems - 1 ; out--) {
            for (in = 0; in < out; in++) {
                if(a[in]>a[in+1]){
                    swap(in, in+1);
                }
            }
        }
    }
}

其中核心的代码只有四行:

for (out = nElems; out < nElems - 1 ; out--) {
            for (in = 0; in < out; in++) {
                if(a[in]>a[in+1]){
                    swap(in, in+1);
                }
            }
        }

这个算法的思路是将最小的数据项放在数组最开始的位置下标为0,并将最大的数据项放在最右边位置下标nElems - 1。外层for循环的计数器从nElems - 1开始,每经过一次循环就会减1,下标大于out的数据都是排好顺序的。变量out每完成一次内部循环的时候(in)往左移一位,因此算法中就不在处理右边排好队列的人了。

swap方法只是用来执行交换数据的操作。

冒泡排序的效率:

     一般来说,数组中有N个数据,那么第一轮比较就会进行N-1次对比,第二轮有N-2次比较,以此类推。那么比较结束一共比较了(N-1)+(N-2)+(N-3)+.......+1 =N*(N-1)/2

Java实现冒泡排序 欢迎点击「算法与编程之美」↑关注我们!本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。问题描述冒泡排序是一种简单的常见的排序算法,算法重复的... 阅读详情

相关推荐

TeraTerm 使用技巧

⏹TeraTerm 使用技巧

菜鸟记录 1万+

【Java】使用 Java 语言实现一个冒泡排序

上一篇文章已经学习了,如何使用IDE集成开发工具编写Java代码,并输出了一段Hello World的代码。 本篇文章将通过IDE使用 Java 语言实现一个冒泡排序。

小5聊的博客 5820

Camera 基础知识

Raw Sensor输出的Data格式为Raw,图像的效果处理使用BB端的ISP,BB端接收Raw data后进行一系列的图像处理(OB,Shading,AWB,Gamma,EE,ANR等),效果方面由BB端控制,需要针对不同的模组进行效果调试,Raw sensor是目前的主流,数据量比YUV Sensor小(RAW10 格式的sensor 1个pixel 10个bit)使用平台ISP处理,能支持较大的size。不过,相位对焦并不是那么完美,它对光线的要求就比较高,在弱光拍摄环境下,相位对焦就无能威力了。

手机-手表蓝牙开发工程师的博客 3062

冒泡排序(Java)(完整代码)

你好,我是 hello,word。一个程序小白。

weixin_48544279的博客 11万+

微信小程序云开发订单微信支付与小票和标签打印的完整高效流程

本片文章全文12000字,细致讲述从申请账户到小程序注册到打印机的选型最后到实现微信小程序云开发订单支付更新与小票,标签打印完整的高效流程。客户A在我们的点餐平台上点了一杯咖啡,所以客户要在选好后付款,在付款完成后商家的小票打印机和标签打印机打印出本订单的相关信息。

weixin_52312427的博客 3649

英飞凌TC377的Flash管理、UCB配置与HSM安全机制解析

本文深入解析了英飞凌TC377微控制器的Flash存储结构、UCB配置机制与HSM安全模块。详细阐述了带Cache与不带Cache的PFlash地址访问差异、利用SOTA与AB Swap实现无感OTA更新的原理,以及如何通过UCB安全配置启动流程与写保护。重点剖析了HSM硬件安全模块在密钥管理、安全启动与安全OTA中的核心作用,为开发高可靠性嵌入式系统提供实战指南。

weixin_29170327的博客 523

Java冒泡排序(从大到小排序)!

冒泡排序 1. 比较相邻的两个数,如果第一个数比第二个数大,则两数交换。 2. 对之后的相邻元素进行同样的工作,从开始到最后一对,这样进行一次排序后,数据的最后一位会是最大值 ,第一次循环进行的次数为 arr.length-1。 3. 之后对所有的元素重复以上的步骤,且以后每次循环的次数为arr.length-1-i (i为循环第几次 ,i 从零开始); 4. 重复上述步骤,直到排序完成 冒泡排序代码如下: /* * 冒泡排序写法 * 2021/3/29 * 奈何桥 */

tianyang_的博客 6153

DenseNet训练实践

在Cifar10上训练DenseNet,复现DenseNet论文的结果是后面两篇分析工作的基础,因此本系列的第一篇,将首先讨论深度学习的训练过程中的几个方面: 1. 数据集 1.1 Cifar10数据集 Cifar10数据集有6万张32X32的图片,是一个小型的数据集,但数据的复杂度足够,下图来自DenseNet论文,可以看出,不用数据增强的话,ResNet的正确率也很难超过90%,因而足以用来验...

一蓑烟雨任平生 1万+

(四)Java算法:冒泡排序

多角度了解冒泡排序,冒泡排序的优化和原因

嘉禾嘉宁papa 1万+

JavaFX - 动画

JavaFX 动画

思你日度难眠 1603

KEIL 5.38如何手动安装ARM Compiler V5?完整配置流程分享

本文详细介绍了在KEIL 5.38环境下手动安装和配置ARM Compiler V5(AC5)的完整流程,解决历史遗留项目的兼容性问题。从获取安装包、环境变量设置到KEIL集成配置,逐步指导开发者完成AC5的部署,并提供了常见错误排查和性能优化建议,帮助开发者高效维护基于C编译器的老项目。

weixin_29168813的博客 628

冒泡排序-Java实现

冒泡排序是一种常用的排序算法

qq_52514342的博客 445

【论文精读】Graph WaveNet-深度时空图模型

Graph WaveNet构建了一个自适应邻接矩阵,它能保留隐藏的空间依赖关系,能够自动从数据中发现未见的图结构。提出了一个有效且高效的框架,可同时捕捉空间和时间依赖关系。其核心思想是将其提出的图卷积与扩张因果卷积相结合,使每个图卷积层都能处理空间依赖关系。在交通数据集上评估了提出的模型,并以较低的计算成本获得了最先进的结果。

打酱油的葫芦娃 1007

Java中的冒泡排序

Java中的冒泡排序冒泡排序的原理冒泡排序算法 冒泡排序的原理 冒泡排序算法通过重复比较,将数组中相邻的两个数据元素进行交换。在这个过程中,不断将小的值移向一端,大的值移向另一端,从而达到排序的目的。 冒泡排序算法 核心算法: //Bubble Sort for(int i = 1; i < length; ++i){ for (int j = length - 1; j >= i;...

蜗小牛的博客 3万+

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JAVA冒泡排序

JAVA冒泡排序1.问题描述2.分析3.代码实现 1.问题描述 水泡从水底到水面,从小变大, 冒泡排序:将一个数组以升序或降序排列,相邻两个数比较,将大的往后排(或往前排), 进行多次比较换位置,最终得到一个排列好的数组, 针对数组中所有的数进行排序,从数组下标为0的数开始,相邻的数进行比较,大的往后换,小的往前换, 第一次:对n个数需要进行n-1次比较, 第二次:对n-1个数进行n-2次比较 … 直到最终不需要换位置。 2.分析 对一个数组进行排序,依靠数组下标访问数组中的每个元素, 首先:冒泡排序从数组

weixin_44712669的博客 1504

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

java冒泡排序和双向冒泡排序算法

java实现冒泡排序 一、冒泡排序: 利用冒泡排序对数组进行排序 二、基本概念: 依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的)

zhuyue_981025的博客 1190

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

java排序链表冒泡排序_Java中的冒泡排序

java排序链表冒泡排序Java Sorting is one of the many aspects of java interview questions. In this post, we will see java bubble sort example and write a program for bubble sort. Java排序是Java面试问题的众多方面之一。 在这篇文章中,...

从零开始的教程世界 1844

java冒泡排序代码_Java冒泡排序

一、冒泡排序:利用冒泡排序对数组进行排序二、基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2...

weixin_39858124的博客 2608

Java 冒泡排序

Java 冒泡排序 以升序排序为例,从上往下,两两之间进行比较,若上面的数比下面的数大,则交换位置,也就是较大者下沉,这样每一轮比较结束都会产生一个本轮次的最大值,较小的数就会不断向上移动,好像气泡向上漂浮一样。 特点: 升序排序中每一轮比较会把最大的数沉到最底,所以每一轮比较的次数都会比上一轮少一次。 为了方便大家理解,我做了一张动图来演示这一过程。 冒泡排序动画演示: 思路分析: 如上图所示, 黄,绿,蓝,红 分别表示冒泡排序的4轮比较 第一轮[黄色] 比较了4次 第二轮[绿色] 比较了3次 第三轮[

才哈哈的博客主页 2838

Java冒泡排序

在Java中有很多排序算法,其中最经典的要数冒泡排序了,由于有时会忘记这些排序是怎么实现的,所以在此记录一下。 public class BubbleSort { public static void main(String[] args) { int[] arr = {50,15,56,23,54,84,58,45,21}; for(int i = 0; i < ar...

Emperor_Hd的博客 3654

冒泡排序程序java_冒泡排序Java程序

冒泡排序程序javaBubble sort in java is the simplest sorting technique. In bubble sort algorithm each element is compared to next adjacent element, if the next element is smaller, then it will be swapped by ...

culing2941的博客 1079

Java冒泡排序详解

Java冒泡排序 排序算法概述 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。排序算法,就是如何使得记录按照要求排列的方法。排序算法在很多领域得到相当地重视,尤其是在大量数据的处理方面。 稳定性:一个排序算法是稳定的,就是当有两个相等记录的关键字R和S,且在原本的列表中R出现在S之前,在排序过的列表中R也将会是在S之前。 如果算法是稳定的有什么好处呢?排...

BigMoreKT的博客 1430

java冒泡排序(java冒泡排序经典代码)

java中最简单的方法冒泡排序? package bubble_sort; import java.util.Scanner; public class Sort { * 冒泡排序 * @param args public static void main(String[] args) { //...

计算机毕业论文源码,学生个人网页制作html源码。贴近用户做网络推广和互联网优化。 1367

java数组冒泡排序_java利用冒泡排序对数组进行排序

本文实例讲述了java利用冒泡排序对数组进行排序的方法。分享给大家供大家参考。具体如下:一、冒泡排序:利用冒泡排序对数组进行排序二、基本概念:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二...

weixin_31016735的博客 2223

冒泡排序-java

冒泡排序-java 1.冒泡排序low版本 每次冒泡过程都是数列的第一个元素开始,然后依次和剩余的元素进行比较,若小于相邻的元素,就置换位置,同时会将较大元素作为基准元素,继续与相邻的元素比较,直到最后一个数列元素 public static void sort(int[] arr) { for (int i = 1; i < arr.length; i++) { //第一层for循环,用来控制冒泡的次数 for (int j = 0; j < ar

weixin_45467631的博客 3216
上一篇: linux服务器上SVN安装
下一篇: java排序之选择排序
阿__龙
博客等级 码龄9年 2粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值