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

相关推荐

道闸不自动落杆故障排查:从传感器原理到控制器调试全解析

在工业自动化和物联网系统中,传感器与控制器构成的闭环控制是保障设备可靠运行的核心。其基本原理是通过传感器采集环境状态,控制器依据预设逻辑做出决策并驱动执行器动作。这一技术价值在于实现了无人值守下的安全、高效自动化,广泛应用于智能交通、安防和智能楼宇等领域。以停车场道闸系统为例,其自动落杆功能高度依赖地感线圈与防砸雷达的协同。地感线圈作为触发单元,负责感知车辆接近;而防砸雷达则作为持续监测的安全单元,通过微波探测防砸区域内是否有障碍物,其信号是控制器执行落杆决策的关键依据。当系统出现车辆通过后闸杆不落的典型故

weixin_29190651的博客 311

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

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

小5聊的博客 5820

熵编码(五)-CABAC(一) 基础篇

前两篇算术编码文章介绍了算术编码原理和步骤。本篇文章介绍CABAC,基于上下文自适应的二进制算术编码。本文对CABAC的基本原理进行了详细的介绍和分析,下篇文章将会对H264编码中的CABAC熵编码的实际应用进行介绍。

尹佑壮的博客 3880

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

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

weixin_48544279的博客 11万+

(12)单相降压自耦变压器的等效电路和仿真模型

本文根据电机学基本原理,从单相双绕组变压器的接线方式出发,建立基本方程并导出T型等效电路。然后将双绕组变压器演变成一种降压自耦变压器,详细地建立起单相降压自耦变压器的数学模型以及导出相对应的等效电路,最后用Matlab/simulink的simscape元件库元件建立了基于单相自耦变压器的T型等效电路的仿真模型。用实例仿真验证了本文工作的正确性。

weixin_45670943的博客 1046

使用ChatGPT工具阅读文献的实战教程

本文介绍核心内容为使用ChatGPT工具阅读文献,希望对学习和使用ChatGPT的同学们有所帮助。为了兼顾质量和速度,本专栏的更新频率为一周一到两更。 文章目录 1. 前言 2. 实战教程 2.1 下载工具并登录 2.2 提取文献中的关键信息

herosunly的博客 15万+

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

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

tianyang_的博客 6153

【点云鸟瞰图BEV】点云鸟瞰图BEV原理与可视化

本节将介绍激光雷达等点云的鸟瞰图生成原理、代码及效果图。 1 BEV视图原理 点云BEV(Bird's Eye View)视图是指点云在垂直于高度方向的平面上的投影。通常,在获得bev视图前,会将空间分割成体素,利用体素对点云进行下采样,然后将每个体素作为一个点进行投影。体素是指将三维空间按照固定尺寸长方体进行划分时的长方体(Δl*Δw*Δh)。 体素投影时可以得到BEV视图的像素点坐标。每个像素点的特征取值则可以通过多种方式得到。 ...

叶子的博客 2万+

(四)Java算法:冒泡排序

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

嘉禾嘉宁papa 1万+

ROS从入门到精通2-1:机器人3D可视化工具——Rviz

本文详细介绍了Rviz是什么?为什么要使用这个工具?清晰地列出了Rviz的安装流程和界面的基本功能元素;讲解了Rviz基本数据类型与话题,并用两个实例深入理解Rviz数据可视化的过程

FRIGIDWINTER的博客 5346

<IBM AIX> 《HACMP 实用手册和命令 HA切换手册》 - 鸿篇巨制,全网最全

操作命令检查磁盘预留策略要将磁盘预留策略更改为 no_reserve集群状态实用程序查看集群状态是否正常SMIT System Management (C-SPOC)Cluster ServicesShow Cluster Services 面板上的选项或 lssrc 命令查看资源组、资源组对应的VG、资源组对应的APPLICATION SERVER# ./cldispsmit常用命令F3退出F4列表Esc+6或者F6查看命令Esc+7或者F7选择多项检查状态。

Else 的博客 3363

冒泡排序-Java实现

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

qq_52514342的博客 445

【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】

向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)

MISAYAONE的博客 1553

Java中的冒泡排序

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

蜗小牛的博客 3万+

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

JAVA冒泡排序

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

weixin_44712669的博客 1504

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

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

zhuyue_981025的博客 1190

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

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、付费专栏及课程。

余额充值