当前位置: 首页 > news >正文

超简单理解冒泡排序

1.冒泡排序(Bubble Sort)

较简单排序算法。

它会遍历若干次要排列的数列,每次遍历,会从前往后比较相邻两个数的大小。

如果前者比后者大,就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。

那么遍历需要一个变量控制范围。一个变量需要在这个范围里控制相邻元素进行比较。将最大的数作为有序数,在进行下一趟

比较就把它"踢出"遍历范围。如此一来,每个"它"都是作为"它"那次遍历的最大数,最后实现有序。

#include<stdio.h>
swap(int* x,int* y)
{int temp;temp = *x;*x = *y;*y = temp;
}
void bubble_sort(int* a, int n)
{int i, j;int flag;for (i = n - 1; i > 0; i--){flag = 0;//标志for (j = 0; j < i; j++){if (a[j] > a[j + 1]){swap(&a[j], &a[j + 1]);flag = 1;//交换,标志设为1}}if (flag == 0){break;//没发生交换,已有序}}
}
void main()
{int str[] = {2,3,4,10,9,8,7,6,5,1};int zf = sizeof(str) / sizeof(str[0]);bubble_sort( str, zf);int i;for (i = 0; i < zf; i++){printf("%3d",str[i]);}
}

2.冒泡排序的时间复杂度和稳定性

2.1冒泡排序的时间复杂度是O(n^2)。

排序算法中有两个for循环。

每个for循环的次数都是n。用数组下标表示范围就是(0,9)


2.2冒泡排序稳定性

它稳定,满足稳定算法定义。

算法稳定性:假设数列中存在a[i]=a[j];若在排序之前,a[i]在a[j]之前,排序后,a[i]还在a[j]之前,那这个算法就是稳定的!

相关文章:

超简单理解冒泡排序

1.冒泡排序(Bubble Sort) 较简单排序算法。 它会遍历若干次要排列的数列&#xff0c;每次遍历&#xff0c;会从前往后比较相邻两个数的大小。 如果前者比后者大&#xff0c;就交换他们位置。遍历一次最大元素在数列末尾。重复直到数列有序。 那么遍历需要一个变量控制范围。…...

模拟IC设计工程师成长日记

很多IC设计的新人&#xff0c;不知道进入IC设计行业后会有哪些成长和学习的地方。 很多初入IC设计职场的人也都会比较恐慌&#xff0c;成长进步需要一个时间和经验的积累 今天给大家找了一个叫“模拟IC设计“攻城狮”的成长日记供大家参考. 以模拟IC设计工程师的身份进入职场&a…...

修炼k8s+flink+hdfs+dlink(六:学习namespace,service)

一&#xff1a;什么是namespace&#xff1f; 你可以认为namespaces是你kubernetes集群中的虚拟化集群。在一个Kubernetes集群中可以拥有多个命名空间&#xff0c;它们在逻辑上彼此隔离。 他们可以为您和您的团队提供组织&#xff0c;安全甚至性能方面的帮助&#xff01; 二&a…...

法语导游就业前景如何?

随着国际交流的日益频繁&#xff0c;旅游业正在迅猛发展。尽管全球讲法语的人数并不算多&#xff0c;但讲法语的国家分布广泛。因此&#xff0c;如何成为一名合法的法语导游&#xff0c;以及法语导游的就业前景如何&#xff0c;成为了法语爱好者比较关注的问题。 我们知道&…...

iOS自动混淆测试处理笔记

1 打开 ipa&#xff0c;导出ipa 路径和配置文件路径会自动填充 2 点击 开始自动混淆测试处理 自动混淆测试是针对 oc 类和oc方法这两个模块进行自动混淆ipa&#xff0c;并ipa安装到设备中运行&#xff0c;通过检测运行ipa包是否崩溃&#xff0c;来对oc类和oc方法进行筛选。如果…...

C51--单片机中断

51单片机是单线程模式&#xff0c;需要用到硬件中断。 一、中断系统 中断系统是为使CPU具有对外界紧急事件的实时处理能力而设置的。 当中央处理器CPU正在处理某件事的时候&#xff0c;外界发生了紧急事件请求&#xff0c;要求CPU暂停当前工作&#xff0c;转而去处理这个紧急…...

Linux中关于glibc包导致的服务器死机或者linux命令无法使用的情况

glibc是gnu发布的libc库&#xff0c;即c运行库。glibc是linux系统中最底层的api&#xff0c;几乎其它任何运行库都会依赖于glibc。glibc除了封装linux操作系统所提供的系统服务外&#xff0c;它本身也提供了许多其它一些必要功能服务的实现。由于 glibc 囊括了几乎所有的 UNIX …...

艾泊宇产品战略:华为手机品牌是如何从低端到高端的

华为在过去一直以几百块钱的低端手机为主&#xff0c;但如今已经可以跟苹果一争高下。 这个转变是华为经过了近二十年的艰苦努力才实现的。 我艾泊宇作为一个亲历者深度研究了华为的成长历程&#xff0c;发现这是一个经典的商业教科书案例。 这里面有很多值得今天中国企业学…...

视频批量AI智剪:提升剪辑效率的秘密方法

随着视频内容的爆炸式增长&#xff0c;剪辑师面临着巨大的工作压力。传统的剪辑方法往往效率低下&#xff0c;无法满足快速、高质量的剪辑需求。为了解决这个问题&#xff0c;视频批量AI智剪技术应运而生&#xff0c;成为提升剪辑效率的秘密方法。 视频批量AI智剪是指利用人工…...

linux环境执行jar脚本

一、前言 平常工作中&#xff0c;我们的开发的项目部署到linux环境&#xff0c;以jar包的方式运行&#xff0c;涉及jar包的启动、停止、查看状态等&#xff0c;我们可以通过脚本的方式进行维护&#xff0c;减少自己敲打一长串的命令少敲一个字母或者多敲一个字母&#xff0c;方…...

特权同学FPGA官方全资料包括电子书下载

特权同学FPGA官方全资料包括电子书下载 特权同学倾情奉献海量FPGA学习资料 链接:http://pan.baidu.com/s/1bptgnKF 下载器安装说明 链接:http://pan.baidu.com/s/1dFNXvrV SF-AT7 USB3.0+LVDS+FPGA开发套件 链接:http://pan.baidu.com/s/1c24bVZa SF-HSC USB3.0+LVDS…...

《动手学深度学习 Pytorch版》 10.4 Bahdanau注意力

10.4.1 模型 Bahdanau 等人提出了一个没有严格单向对齐限制的可微注意力模型。在预测词元时&#xff0c;如果不是所有输入词元都相关&#xff0c;模型将仅对齐&#xff08;或参与&#xff09;输入序列中与当前预测相关的部分。这是通过将上下文变量视为注意力集中的输出来实现…...

iOS_Crash 四:的捕获和防护

文章目录 1.Crash 捕获1.2.NSException1.2.C异常1.3.Mach异常1.4.Unix 信号 2.Crash 防护2.1.方法未实现2.2.KVC 导致 crash2.3.KVO 导致 crash2.4.集合类导致 crash2.5.其他需要注意场景&#xff1a; 1.Crash 捕获 根据 Crash 的不同来源&#xff0c;分为以下三类&#xff1a…...

spring boot项目运行jar包读取包内resources目录下的文件

spring boot项目运行jar包读取包内resources目录下的文件 摘要码代码相关文章 摘要 Spring Boot 项目打包成 jar 包后&#xff0c;resources 目录下的文件将会被打包到 jar 包中。如果需要在 Spring Boot 项目运行 jar 包后读取 resources 目录下的文件&#xff0c;可以使用 t…...

浙大陈越何钦铭数据结构06-图1 列出连通集

题目 给定一个有N个顶点和E条边的无向图&#xff0c;请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N−1编号。进行搜索时&#xff0c;假设我们总是从编号最小的顶点出发&#xff0c;按编号递增的顺序访问邻接点。 输入格式: 输入第1行给出2个整数N(0<N≤10)和E&…...

C# Winform编程(9)网络编程

网络编程 HTTP网络编程IPAddress IP地址类WebClient类WebRequest类和WebResponse类 WebBrowser网页浏览器控件TCP网络编程TcpClient类TcpListener类NetworkStream类Socket类 HTTP网络编程 IPAddress IP地址类 IPAddress类代表IP地址&#xff0c;可在十进制表示法和实际的整数…...

RabbitMQ中方法channel.basicAck的使用说明

方法channel.basicAck的作用 在RabbitMQ中&#xff0c;channel.basicAck方法用于确认已经接收并处理了消息。 方法的参数说明 public void basicAck(long deliveryTag,boolean multiple) 参数&#xff1a; long deliveryTag 消息的唯一标识。每条消息都有自己的ID号&#x…...

Jenkins+Python自动化测试持续集成详细教程

Jenkins安装 Jenkins安装 ​ Jenkins是一个开源的软件项目&#xff0c;是基于java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。由于是基于java开发因此它也依赖java环境&…...

Lightroom学习之路

基础知识 常用快捷键 双击修改图片下右边布局的属性&#xff0c;快速回到初始值 B站学习笔记 1、导入到图库为图片标星级&#xff0c;后期优先处理星级高的图片 2、修改照片-基础-白平衡有吸管吸颜色会自动平衡照片颜色 3、直方图左右上角三角形&#xff0c;选中后照片会显示…...

Day 2 Abp框架下,MySQL数据迁移时,添加表和字段注释

后端采用Abp框架&#xff0c;当前最新版本是7.4.0。 数据库使用MySQL&#xff0c;在执行数据库迁移时&#xff0c;写在Domain层的Entity类上的注释通通都没有&#xff0c;这样查看数据库字段的含义时&#xff0c;就需要对照代码来看&#xff0c;有些不方便。今天专门来解决这个…...

别再只当CANopen网关用!EL6751的‘直通CAN’模式,让你像用CAN盒一样调试非标设备

EL6751的直通CAN模式&#xff1a;解锁非标设备调试新姿势 当你的工控柜里躺着几台国产非标设备&#xff0c;厂商只提供了CAN盒调试软件&#xff0c;而手边只有倍福PLC时&#xff0c;那种抓狂的感觉每个自动化工程师都懂。别急着下单采购USBCAN工具&#xff0c;你需要的可能只是…...

Pixel Language Portal效果实测:Hunyuan-MT-7B在游戏对话文本中的语气保留与文化适配能力

Pixel Language Portal效果实测&#xff1a;Hunyuan-MT-7B在游戏对话文本中的语气保留与文化适配能力 1. 引言&#xff1a;当翻译遇见像素冒险 在游戏本地化领域&#xff0c;传统翻译工具往往难以捕捉角色对话中的独特语气和文化内涵。Pixel Language Portal&#xff08;像素…...

Fourier Neural Operator (FNO) 在偏微分方程求解中的核心思想与应用

1. 从传统方法到FNO&#xff1a;偏微分方程求解的进化之路 偏微分方程&#xff08;PDE&#xff09;在工程和科学领域无处不在&#xff0c;从天气预报到飞机设计&#xff0c;从量子力学到金融衍生品定价。传统数值解法如有限差分法&#xff08;FDM&#xff09;和有限元法&#x…...

阿里云盘Refresh Token扫码获取终极指南:三步实现安全授权

阿里云盘Refresh Token扫码获取终极指南&#xff1a;三步实现安全授权 【免费下载链接】aliyundriver-refresh-token QR Code扫码获取阿里云盘refresh token For Web 项目地址: https://gitcode.com/gh_mirrors/al/aliyundriver-refresh-token 你是否在为阿里云盘API授权…...

Unlock Music技术解析:音乐格式解密与跨平台播放实践指南

Unlock Music技术解析&#xff1a;音乐格式解密与跨平台播放实践指南 【免费下载链接】unlock-music 在浏览器中解锁加密的音乐文件。原仓库&#xff1a; 1. https://github.com/unlock-music/unlock-music &#xff1b;2. https://git.unlock-music.dev/um/web 项目地址: ht…...

C++常量表达式constexpr在编译期计算与模板元编程中的结合

C常量表达式constexpr与模板元编程的结合为现代C带来了前所未有的编译期计算能力&#xff0c;这种技术组合不仅提升了程序性能&#xff0c;还增强了代码的表达能力。在C11引入constexpr后&#xff0c;开发者能够在编译期完成复杂的计算&#xff0c;而模板元编程则提供了类型操作…...

GD32F303用J-Link烧录报错0x08000000?别慌,试试这个STM32解锁工具

GD32F303 J-Link烧录报错0x08000000的终极解决方案 当你在使用J-Link烧录GD32F303芯片时遇到"Programming failed address 0x08000000"的错误提示&#xff0c;这通常意味着芯片的Flash存储器处于保护状态。这种保护机制原本是为了防止意外擦除或修改重要数据&#x…...

如何快速下载网页视频:猫抓(cat-catch)浏览器扩展完全指南

如何快速下载网页视频&#xff1a;猫抓(cat-catch)浏览器扩展完全指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch)是一款功能强…...

C#开发者必看:INIFileParser库解决INI配置文件乱码问题的实战指南

C#开发者必看&#xff1a;INIFileParser库解决INI配置文件乱码问题的实战指南 在Windows应用开发中&#xff0c;INI文件作为一种轻量级配置存储格式&#xff0c;至今仍被广泛使用。但许多C#开发者发现&#xff0c;当配置文件路径包含中文、空格或特殊字符时&#xff0c;传统的W…...

智能公式+自动处理,SpreadJS AI 插件开启表格数据计算及处理新时代

在技术领域&#xff0c;我们常常被那些闪耀的、可见的成果所吸引。今天&#xff0c;这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力&#xff0c;让我们得以一窥未来的轮廓。然而&#xff0c;作为在企业一线构建、部署和维护复杂系统的实践者&#xff0c;我们深知…...