数据结构-冒泡排序

1 概念

冒泡排序属于一种常见的交换排序,根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。具体操作是按顺序(从前往后或从后往前)两两对比元素直至本次排序结束,每次排序确认一个固定值(末位或首位)。需要注意的是,为了排序稳定性,如果遇到相同的元素,对比后不予改动。

2 具体算法

#include <iostream>
#include <vector>
using namespace std;int main()
{vector<int> arr = { 10, 8, 7, 5, 4, 2 };//note 1 从前往后依次两两对比,每次都能确认一个末端最大值//note 2 每次排序完成后,最后一个确定值不参与下次排序//note 3 n个元素对比过程中,只需要比较n-1次//note 4 设置标志位,如果某次排序没有发生交换,说明已经有序,退出循环//第一层循环主要是为了确定还剩余需要遍历的元素个数,可能会提前结束//此处循环-1是因为note3for (int i = 0; i < arr.size() - 1; i++) {bool flag = false;//第二层循环主要是为了依次对比元素大小,每次比较元素总数都较上次少1//此处循环+1是因为size从1开始计数,数组从0开始计数for (int j = 0; j < arr.size() - (i + 1); j++) {//每次从第一个开始,与下一个做对比if (arr[j] > arr[j + 1]) {swap(arr[j], arr[j + 1]);flag = true;}//打印每次对比后的新序列for (int i = 0; i < arr.size(); i++) {cout << arr[i] << " ";}cout << endl;}cout << "complete a bubble sort once!" << endl << endl;if (!flag) {break;}}
}

3 执行结果

4 空间复杂度及时间复杂度

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/47935.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——远程连接服务器

sshd服务端 ssh客户端 ssh 服务配置 #ssh 服务安装包 openssh-server [rootserver1 ~] # vim /etc/ssh/sshd_config 17 . #Port 22 # 监听端口&#xff0c;默认监听 22 端口 【默认可修改】 18 . #AddressFamily any #IPV4 和 IPV6 协议家族用哪个&#xff0c; any 表示二者…

园区AR导航系统构建详解:从三维地图构建到AR融合导航的实现

随着现代园区规模的不断扩大与功能的日益复杂&#xff0c;传统的二维地图导航已难以满足访客高效、精准定位的需求。园区内部错综复杂的布局、频繁变更的商户位置常常让访客感到迷茫&#xff0c;造成寻路上的时间浪费。园区AR导航系统以创新的技术手段&#xff0c;破解了私域地…

同三维T610UH2L2-4K60 USB双路高清HDMI采集卡:高清HDMI采集卡

采集2路4K60HDMI信号,带2路HDMI环出&#xff0c;带1路LINE IN1路MIC和1路LINE OUT&#xff0c;4K60,USB3.0免驱 来百度APP畅享高清图片 高清HDMI采集卡 一、产品介绍 同三维T610UH2L2-4K60是一款USB双路4K60HDM采集卡&#xff0c;可采集双路4K60超高清HDMI信号&#xff0c;分…

[web]-反序列化漏洞-easy入门

打开网站看到代码&#xff1a; <?php highlight_file(__FILE__); class easy{ public $cmd; public function __wakeup(){ system($this->cmd); } } unserialize($_GET[pop]); ?> 是一个简单的反序列化题目&#xff0c;在本地启动php_study,生成序列化字符串&…

fatal error解决方法的详细教程,电脑出现错误代码fatal error问题

电脑出现“fatal error”&#xff08;致命错误&#xff09;通常指的是操作系统、应用程序或电脑硬件在执行期间遇到了非常严重的问题&#xff0c;导致程序不能正常继续运行。这种错误往往需要立即关注和解决&#xff0c;因为它可能影响到数据完整性、系统安全或者用户体验。 导…

JVM(day2)经典垃圾收集器

经典垃圾收集器 Serial收集 使用一个处理器或一条收集线程去完成垃圾收集工作&#xff0c;更重要的是强调在它进行垃圾收集时&#xff0c;必须暂停其他所有工作线程&#xff0c;直到它收集结束。 ParNew收集器 ParNew 收集器除了支持多线程并行收集之外&#xff0c;其他与 …

手写简易版Spring IOC容器01【学习】

文章目录 BeanDefinitionbeanDefinition类 单例对象单例对象注册(SingletonBeanRegistry)DefaultSingletonBeanRegistry 模板方法 BeanFactoryBeanFactory接口AbstractBeanFactory 抽象工厂模板 (getBean)AbstractAutowireCapableBeanFactory (createBean 创建bean)DefaultList…

北京邮电大学,中央空调的分户计费系统

北京邮电大学 中央空调如何公平、公正、合理的收取费用&#xff0c;一直都是各建筑管理者的首要问题。北京邮电大学也面临着能源分配不公&#xff0c;学校管理者空调收费管理困难等问题。根据学校的具体情况&#xff0c;拓森为其制定了一套中央空调管理运营方案—无线中央空调…

一个小问题导致,AI大模型集体翻车?

9.11大还是9.9大&#xff1f; 这两天大家都在说ChatGPT大模型翻车了 &#xff01; 这到底是怎么个事儿呢&#xff1f; 原来是最近有人想ChatGPT等大模型提了一个简单的问题&#xff1a; 9.11 大还是 9.9 大&#xff1f; 答案显而易见&#xff0c;然而众多大模型却给出了错误…

初学Linux之常见指令(下)

初学Linux之常见指令&#xff08;下&#xff09; 文章目录 初学Linux之常见指令&#xff08;下&#xff09;1. echo 指令2. cat 指令3. more 指令4. less 指令5. head 和 tail 指令6. date 指令7. cal 指令8. which 指令9. alias 指令10. find 指令11. grep 指令12. zip 和 unz…

单链表<数据结构 C版>

目录 概念 链表的单个结点 链表的打印操作 新结点的申请 尾部插入 头部插入 尾部删除 头部删除 查找 在指定位置之前插入数据 在任意位置之后插入数据 测试运行一下&#xff1a; 删除pos结点 删除pos之后结点 销毁链表 概念 单链表是一种在物理存储结构上非连续、非顺序…

熵、交叉熵、KL散度

这里写目录标题 熵KL散度引入交叉熵。交叉熵的二分类公式&#xff1a; 再次理解SoftMax函数结束 熵 熵&#xff0c;是一个物理上的概念&#xff0c;表示一个系统的不确定性程度&#xff0c;或者表示一个系统的混乱程序。 下边是信息熵的演示&#xff1a; 信息熵的公式如下&…

Vue:axios请求数据转存leanCloud

思路&#xff1a; 采用axios请求需要的数据&#xff0c;查看leanCloud中数据批量存储的格式&#xff0c;将两个数据进行对比&#xff0c;将请求得到的数据封装为云服务存储的格式&#xff0c;再发leanCloud存储数据的请求完成转存 1.封装js代码 //批量操作新增数据 import r…

【Docker】Docker-compose 单机容器集群编排工具

目录 一.Docker-compose 概述 1.容器编排管理与传统的容器管理的区别 2.docker-compose 作用 3.docker-compose 本质 4.docker-compose 的三大概念 二.YML文件格式及编写注意事项 1.yml文件是什么 2.yml问价使用注意事项 3.yml文件的基本数据结构 三.Docker-compose …

鸿蒙语言基础类库:【@system.sensor (传感器)】

传感器 说明&#xff1a; 从API Version 8开始&#xff0c;该接口不再维护&#xff0c;推荐使用新接口[ohos.sensor]。本模块首批接口从API version 4开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。该功能使用需要对应硬件支持&#xff0c;仅支持…

对象存储解决方案:高性能分布式对象存储系统MinIO

文章目录 引言I 自动化数据管理界面1.1 图形用户界面:GUI1.2 命令行界面:MinIO CLI1.3 应用程序编程接口:MinIO APIII 部署集成2.1 建议使用RPM或DEB安装方式2.2 创建环境变量文件2.3 启动MinIO服务2.4 将NGINX用作反向代理,配置负载。III 基础概念3.1 为什么是对象存储?3…

什么是信息指纹和信息加密——《数学之美》第16、17章以及其他各种资料的读书笔记

目录 1. 信息指纹 1.1 概念 1.2 相关算法的演进历程 1.3 哈希碰撞 1.4 雪崩效应 1.5 应用场景 2. 信息加密 2.1 密码学的简要历史 2.1.1 古代密码学&#xff1a;智慧的萌芽 2.1.2 中世纪至文艺复兴&#xff1a;密码术的兴起 2.1.3 近代密码学&#xff1a;机械密码机的…

CentOS配置时钟服务

一、ntp协议 1.1 基础 NTP&#xff08;Network Time Protocol&#xff0c;网络时间协议&#xff09;是用于同步计算机网络中各个设备时间的协议。 下面了解一下 ntp 的配置选项 1.) iburst 功能: 通过发送一组八个数据包来加速初始同步。 用法: server 0.pool.ntp.org i…

惠海 15N10 LED灯驱动NMOS管-HC070N10L 100V15A 低内阻 TO-252封装 散热好

NMOS和PMOS管的工作原理&#xff1a; NMOS&#xff08;N型金属氧化物半导体&#xff09;和PMOS&#xff08;P型金属氧化物半导体&#xff09;是两种重要的晶体管。它们都由栅极&#xff08;gate&#xff09;、漏极&#xff08;drain&#xff09;和源极&#xff08;source&…

FastAPI 学习之路(五十)WebSockets(六)聊天室完善

我们这次只是对于之前的功能做下优化&#xff0c;顺便利用下之前的操作数据的接口&#xff0c;使用下数据库的练习。 在聊天里会有一个上线的概念。上线要通知大家&#xff0c;下线也要通知大家谁离开了&#xff0c;基于此功能我们完善下代码。 首先&#xff0c;我们的登录用…