算法:冒泡排序

本地部署大模型 vs 网页版大模型区别 fill:#333;color:#333;color:#333;fill:none;本地服务器/工作站硬件资源私有化部署GPU集群高速存储模型文件训练框架推理引擎。 阅读详情
原理:

每一次整个无序数组进行相邻的进行比较,较大的向后排,这样这次排序的数组中最后的两个数就是有序的,下次不再进行排布最后这个数,这样待排序的数组就少1。直排到最后待排序的数组数量为小于1。

图片展示

在这里插入图片描述
这个图片的比较是从后向前进行比较的,不过也是进行多轮比较。

代码实现
public class BubbleSort {
    public void arrSort(int[] arr,int n){
        for(int i =n-1;i>0;i--){
        //添加判断标志,当一轮排序中,没有进行交换,说明已经排好,跳出循环
            boolean flag = false;
            for(int j=0;j<i;j++){
                if(arr[j]>arr[j+1]){

                    int sum = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = sum;
                    flag = true;
                }
            }
            if(flag==false) break;
        }
    }

    public static void main(String[] args) {
        int[] arr = new int[]{20,40,30,10,60,50};
       new BubbleSort().arrSort(arr,6);
        System.out.println(Arrays.toString(arr));
    }

}
时间复杂度

冒泡排序的时间复杂度是O(N2)。有n个数遍历一次的时间复杂度为O(N),而需要进行n-1轮循环排序,所以是n2。

学习链接
全网详细解决Client does not support authentication protocol requested by server;consider upgrading Mysql c 全网详细解决1251 - Client does not support authentication protocol requested by server; consider upgrading Mysql client。 阅读详情

相关推荐

从零到一:RK3588嵌入式开发中的SDK与MPP集成实战解析

本文详细解析了RK3588嵌入式开发中SDK与MPP(Media Process Platform)的集成实战,涵盖开发环境构建、SDK架构解析、MPP集成关键技术点及常见问题诊断。通过Qt5.12.10交叉编译环境配置和硬件加速优化,帮助开发者高效完成嵌入式视觉项目开发,特别适合边缘计算应用场景。

weixin_29189381的博客 510

排序算法:冒泡排序及优化

冒泡排序算法详解以及对冒泡排序算法进行两个优化

doublecircle1的博客 2830

搞定汽车座椅电机EMC超标:一个PCB滤波板的实战设计与避坑心得

本文详细介绍了汽车座椅电机EMC超标问题的解决方案,通过PCB滤波板的实战设计,解决了传导发射测试超标问题。文章分享了在空间受限条件下的滤波电路架构设计、接地系统优化及迭代验证过程,为汽车直流电机的EMC整改提供了实用方法论。

weixin_30336061的博客 378

排序算法:冒泡排序

title: ‘排序算法:冒泡排序’ date: 2019-12-22 16:08:39 categories: 算法导论 tags: 算法导论 冒泡排序 普通冒泡排序 # 普通冒泡排序 def sort(num:[])->[]: ''' 冒泡排序,不稳定算法,依次比较两个元素,如果前一个元素大于后一个元素,进行交换 :param num: :retu...

weixin_42479155的博客 179

别再只会用QTcpSocket了!手把手教你用QSslSocket为你的Qt网络应用加上SSL/TLS加密(附完整代码示例)

本文详细介绍了如何将Qt网络应用从QTcpSocket迁移到QSslSocket,实现SSL/TLS加密传输。通过对比API差异、解析核心机制和提供完整代码示例,帮助开发者快速掌握安全网络编程技巧,有效防范数据窃听和中间人攻击等安全风险。

weixin_30654583的博客 400

组态王通过以太网与西门子S7-200 SMART PLC通讯案例详解

通过以上步骤,我们成功实现了组态王与西门子S7-200 SMART PLC的以太网通讯。这一技术不仅提高了工业自动化系统的灵活性和可靠性,还为初学者提供了一个实用的学习案例。希望本文能帮助您快速掌握组态王与西门子S7-200 SMART PLC的通讯技术。如有任何疑问,欢迎留言讨论!

2401_88785500的博客 2004

排序算法:冒泡排序算法

本文介绍冒泡排序的原理和使用。

TechNomad的博客 1274

基础篇.ARM架构介绍(1)

ARM公司主要向客户提供处理器IP。ARM体系结构是一种硬件规范,主要用来约定指令集、芯片内部体系结构等。以指令集为例,ARM体系结构并没规定每一条指令在硬件IP中如何实现,只是约定了每条指令的格式、行为规范、参数等。

heshuangzong的博客 7803

算法: 冒泡排序

1: 冒泡排序 (Bubble) 2: 插入排序(Insert) 3: 快速排序(Quick) 4: 经典算法: 递归 (Recursion) 冒泡排序的思想: 让数组中的当前项和后一项进行比较, 如果当前项比后一项大, 则两项交换位置(让大的靠后) 即可; let a = 10; let b = 20; 实现a 和 b 的值互换? 定义一个空的变量 let c = null; c = a; a = b; b = c; 需要比较length - 1轮, (数组中5个数, 只需要把...

weixin_45677987的博客 112

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2151

ubuntu22.04下对使用linuxdeployqt发布的qt程序进行deb打包操作

【代码】ubuntu22.04下对使用linuxdeployqt发布的qt程序进行deb打包操作。

十三阿哥的博客 1402

轻松掌握冒泡排序:Python冒泡排序算法

冒泡排序是一种基本的排序算法,它通过反复交换相邻两个元素的位置,使得每一轮循环都能将未排序部分中的最大元素移动到数组的末尾。因为排序过程中较小的元素像气泡一样逐渐浮到数组的顶部,故称为冒泡排序。

2201_75362610的博客 9868

单线激光雷达的工作原理

单线激光雷达通过单一激光束的水平扫描和时间 / 相位测量,实现二维环境的距离感知,是低成本二维导航的核心传感器。尽管其无法直接提供三维信息,但其可靠性和经济性使其在消费级和工业级场景中广泛应用。随着技术发展,部分单线雷达通过振动镜或 MEMS 微振镜实现微小角度偏转,可近似模拟多线扫描效果,进一步拓展了应用边界。

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 1859

java冒泡排序代码_看动画学算法之:排序-冒泡排序

简介排序可能是所有的算法中最最基础和最最常用的了。排序是一个非常经典的问题,它以一定的顺序对一个数组(或一个列表)中的项进行重新排序。排序算法有很多种,每个都有其自身的优点和局限性。今天我们来学习最最简单的冒泡排序算法。冒泡排序的原理冒泡排序的原理很简单,我们想象一下一个一个的气泡上浮的过程。假设我们有八个数字 29,10,14,37,20,25,44,15 要进行排序。我们先用一个动画图来直观的...

weixin_39731623的博客 149

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

排序算法:冒泡排序

1. 什么是冒泡排序?(摘抄自百度百科) 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。 2. 冒泡排序算法原理.

南雨兮 1万+

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

冒泡排序算法_排序算法二:冒泡排序

Hi,各位小伙伴,咱们又见面了,今天是2020/7/7咱们来说说冒泡排序,开头的这些经典算法都不难,我更新的就快点啦!01算法思想基本思想:比较两个相邻的元素,将值大的元素交换到右边02算法描述思路:依次比较相邻的两个数,将比较小的数放在前面,比较大的数放在后面。  (1)第一次比较:首先比较第一和第二个数,将小数放在前面,将大数放在后面。  (2)比较第2和第3个数,将小数...

weixin_39688870的博客 135

排序算法一:冒泡排序

#include <stdio.h> void swap(int *a, int* b) { int tmp = 0; tmp = *a; *a = *b; *b = tmp; } /*从起始位置开始,遍历后续数据,将最大(最小)成员放在当前位置,向后移动一步,再次遍历剩余所有数据,找出最大或最小成员,放在当前,后移,直到所有位置安排完毕*/...

aichengdi7617的博客 169

算法入门排序算法:冒泡排序

冒泡排序是最基础的排序算法之一,通过相邻元素比较和交换将最大元素逐步"沉底"。本文详细介绍了冒泡排序的工作原理,提供了Java实现代码(包括基础版和优化版),并分析了算法的时间复杂度(最好O(n)、最坏O(n²))、空间复杂度(O(1))和稳定性。虽然效率不高,但冒泡排序简单易懂,适用于教学和小规模数据排序。优化版本通过提前退出机制可提升部分有序数组的排序效率。文章强调了该算法在算法学习中的基础地位,以及理解简单算法对掌握更复杂算法的重要性。

无聊了,不玩了 704

C算法:冒泡排序算法(超级详细)!!!

冒泡排序算法 冒泡排序是一种简单的排序算法,它也是一种稳定排序算法。其实现原理是重复扫描待排序序列,并比较每一对相邻的元素,当该对元素顺序不正确时进行交换。一直重复这个过程,直到没有任何两个相邻元素可以交换,就表明完成了排序。 一般情况下,称某个排序算法稳定,指的是当待排序序列中有相同的元素时,它们的相对位置在排序前后不会发生改变。 假设待排序序列为 (5,1,4,2,8),如果采用冒泡排序对其进行升序(由小到大)排序,则整个排序过程如下所示: 第一轮排序,此时整个序列中的元素都位于待排序序列,依次扫描

欢迎各位C++爱好者! 3032

冒泡排序:经典排序算法的入门

冒泡排序是一种简单直观的排序算法,掌握它不仅有助于理解排序的基本思想,也能帮助我们更好地学习其他排序算法。希望这篇文章对大家有所帮助,祝大家刷题愉快!本文由 cannonjinx 原创,转载请注明出处。

cannonjinx的博客 1744

基本算法:冒泡排序算法

基本算法:冒泡排序算法 冒泡算法简介 冒泡算法(Bubble Sort),是一种比较简单的排序算法。其排序逻辑是:重复访问需要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小首字母从A到Z)有误,就会对元素进行位置交换,重复该过程直到没有相邻的元素需要进行交换。算法的名称是因为经过该算法排序后,越小的元素会经过交换会像泡泡一样慢慢浮动到数列的顶端,故此得名冒泡算法。 算法排序详解 假设...

MegaSlark的博客 1094

算法:冒泡排序、一阶滤波

冒泡排序 /* 冒泡 */ void bubbleSort(int a[], int n) { int i, j, tmp; for(i =0 ; i< n-1; ++i) { for(j = 0; j < n-i-1; ++j) { if(a[j] > a[j+1]) { tmp =...

weixin_34406796的博客 439

java经典算法:选择排序,冒泡排序

java经典算法:选择排序,冒泡排序选择排序SelectionSort冒泡排序BubbleSort 选择排序SelectionSort 选择排序1的原理是依次和后面的几位数字进行比较,如果前面比后面大就互换 总而言之就是每次外循环结束,都会把最小值放在前面 这种方式每次内循环互换的次数较多 int[] arrays = new int[]{100, 34, 52, 6, 8, 78, 95}; /...

stormbreaker 400
上一篇: 网络原理:UDP协议
下一篇: 算法:选择排序
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贝多芬也爱敲代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值