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

冒泡排序法

编写程序实现冒泡排序。

相关知识
为了完成本关任务,要了解冒泡法排序的算法思想:
对所有相邻记录的关键字值进行比较,如果是逆序则将其交换,最终达到有序化,其处理过程为: 

将整个待排序的记录序列划分成有序区和无序区,初始状态有序区为空,无序区包括所有待排序的记录。
对无序区从前向后依次将相邻记录的关键字进行比较,若逆序将其交换,从而使得关键字值小的记录向上“飘浮”(左移),关键字值大的记录好像石块,向下“堕落”(右移)。 每经过一趟冒泡排序,都使无序区中关键字值最大的记录进入有序区,对于由 n 个记录组成的记录序列,最多经过 n-1 趟冒泡排序,就可以将这 n 个记录重新按关键字顺序排列。
以长度为 n=10 的序列 (8 7 6 5 9 3 4 0 2 1) 的冒泡排序过程做示范:
第一趟:在经过 9 次对所有相邻数据进行比较后,则数组中元素为 (7 6 5 8 3 4 0 2 1 9);
第二趟:在经过 8 次对所有相邻数据进行比较后,则数组中元素为 (6 5 7 3 4 0 2 1 8 9);
第三趟:在经过 7 次对所有相邻数据进行比较后,则数组中元素为 (5 6 3 4 0 2 1 7 8 9);
……

以此类推,共执行 9 趟操作,可将有 n=10 个元素的数组排成有序序列 (0 1 2 3 4 5 6 7 8 9)。

#include <stdio.h>
#include <stdlib.h>
#define N 100int main ()
{int n, i, j, t;int a[N]; // 声明一个长度为N的数组// 读取数组长度scanf("%d", &n);// 读取数组元素for(i = 0; i < n; i++) {scanf("%d", &a[i]);}// 进行冒泡排序,并输出每一次排序后的结果for(i = 0; i < n - 1; i++) {for(j = 0; j < n - i - 1; j++) {if(a[j] > a[j + 1]) {t = a[j];a[j] = a[j + 1];a[j + 1] = t;}}// 输出每一次排序后的数组for(j = 0; j < n; j++) {printf("%d ", a[j]);}printf("\n");}return 0;
}

相关文章:

冒泡排序法

编写程序实现冒泡排序。 相关知识 为了完成本关任务&#xff0c;要了解冒泡法排序的算法思想&#xff1a; 对所有相邻记录的关键字值进行比较&#xff0c;如果是逆序则将其交换&#xff0c;最终达到有序化&#xff0c;其处理过程为&#xff1a; 将整个待排序的记录序列划分成…...

MATLAB 将fig格式另存为可编辑的eps格式,但乱码问题解决

fig格式图像正常&#xff0c;但通过手动导出后的eps格式图像导入到AI中会乱码&#xff0c;如下图所示 一、主要问题应该是: 文件名中的字符和格式受到了操作系统和文件系统的限制&#xff0c;具体而言是 figure 的Name 属性中包含了特殊字体或字符&#xff08;如逗号&#xff…...

Hadoop:单节点配置YARN

目录 一、Hadoop YARN介绍 二、单节点配置YARN 2.1 配置yarn-site.xml 文件 2.2 配置 mapred-site.xml 文件 2.3 启动 Hadoop 和 YARN 2.4 浏览器访问 三、YARN的常用命令 3.1 启动和停止 YARN 3.2 查看和管理应用程序 3.3 查看和管理节点 3.4 查看和管理队列 3.5 …...

【前端】Svelte:组件间通信

在 Svelte 中&#xff0c;组件间的通信主要通过 props 和事件机制来实现。父组件可以向子组件传递数据&#xff0c;子组件也可以通过事件将信息反馈给父组件。在本教程中&#xff0c;我们将深入了解 Svelte 的组件通信机制&#xff0c;包括 props 和事件的使用方法、事件监听、…...

数学建模-----假设性检验引入+三个经典应用场景(三种不同的假设性检验类型)

文章目录 1.假设检验的过程1.1问题的提出1.2证据的引入1.4做出结论 2.案例二&#xff1a;汽车引擎排放2.1进行假设2.2假设检验的类型2.3抽样分布的类型2.4单尾&#xff08;双尾&#xff09;检验2.5t检验 3.案例三&#xff1a;特鲁普效应3.1统计显著和效果显著3.2心理学现象3.3进…...

Unity——对RectTransform进行操作

文章目录 前言在Unity中对RectTransform进行操作是处理UI布局和动画的关键部分。下面是一些常见的操作及其代码示例&#xff0c;可以帮助你在脚本中灵活地控制UI元素的位置、大小和锚点。 一、获取和设置位置二、获取和设置大小1.设置大小&#xff08;Size Delta&#xff09; 三…...

使用jmeter查询项目数据库信息,保存至本地txt或excel文件1108

知识点1&#xff1a;使用jmeter把项目数据库的数据导出&#xff0c;并使用jmeter导出数据库的数据 步骤1&#xff1a;使用jmeter把项目数据库的数据导出 &#xff08;1&#xff09;测试计划-添加- 线程组setUp线程组 setUp线程组&#xff1a;添加-配置元件-JDBC Connection …...

ubuntu 22.04 server 安装 mysql 5.7.40 更改 datadir 目录 LTS

ubuntu 22.04 server 安装 mysql 5.7.40 更改 datadir 目录 LTS 参考 ubuntu 22.04 server 安装 mysql 5.7.40 LTS https://blog.csdn.net/wowocpp/article/details/143564015 vip Ubuntu中修改MySQL5.7数据存储路径 https://www.cnblogs.com/jiaojiner/p/15236639.html u…...

网站架构知识之Ansible进阶2(day023)

1.include文件 应用场景: 1个ansible剧本内容过多,涉及到多个play(- host:web),可读性变弱&#xff0c;不方便调试。 于是人们想出把单个大的剧本拆分为多个小的剧本&#xff0c; 多个小的剧本可以通过include功能合并使用。 使用方法&#xff0c;书写好对应的剧本文件&#…...

Java 中的 Function:让转换逻辑更灵活

文章目录 1. Function 基础&#xff1a;简化转换逻辑2. 组合 Function&#xff1a;实现多步转换3. 配合 Stream 使用&#xff1a;简化数据转换4. 自定义 Function&#xff0c;封装复杂转换5. 使用 identity() 提供默认转换6. 结合 Optional&#xff0c;实现动态数据转换7. 用于…...

10. java基础知识(下)

文章目录 一、一带而过二、字符串类型String1. 简单了解2. 关于结束符\03. 自动类型转换与强制类型转换 三、API文档与import导包1. API文档2. import导包 四、java中的数组1. 创建2. 遍历3. 补充4. Arrays类① 简单介绍② 练习 五、方法的重载六、规范约束七、内容出处 一、一…...

kafka 在Linux安上的装部署

一、前言 Kafka 是一个分布式流处理平台&#xff0c;在大数据领域有着广泛的应用。在 Linux 系统上安装部署 Kafka 可以为我们搭建高效的数据处理环境。本教程将详细介绍在 Linux 中安装和部署 Kafka 的步骤。 二、准备工作 2.1 系统要求 确保你的 Linux 系统已经安装并配置…...

kill-start系统进程的研究

kill/start系统进程的研究 声明&#xff1a;内容的只是方便各位师傅学习知识&#xff0c;以下网站只涉及学习内容&#xff0c;其他的都与本人无关&#xff0c;切莫逾越法律红线&#xff0c;否则后果自负。 目录 kill/start系统进程的研究Windows系统进程简介特点系统进程 tas…...

【系统架构设计师】2024年下半年真题论文: 论面向服务的架构设计(包括解题思路和参考素材)

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 真题题目(2024年下半年 试题1)解题思路论文素材参考面向服务的架构(SOA)概念和特征面向服务的架构关键技术面向服务的架构设计原则面向服务的架构设计案例分析SOA设计面临的挑战与应对策略真题题目(2024年下半…...

吴恩达深度学习笔记:序列模型(Sequence Models) 1.1-1.2

目录 第五门课 序列模型(Sequence Models)第一周 循环序列模型&#xff08;Recurrent Neural Networks&#xff09;1.1 为什么选择序列模型&#xff1f;&#xff08;Why Sequence Models?&#xff09;1.2 数学符号&#xff08;Notation&#xff09; 第五门课 序列模型(Sequenc…...

【Spring】Spring Web MVC基础入门~(含大量例子)

阿华代码&#xff0c;不是逆风&#xff0c;就是我疯 你们的点赞收藏是我前进最大的动力&#xff01;&#xff01; 希望本文内容能够帮助到你&#xff01;&#xff01; 目录 一&#xff1a;什么是Spring Web MVC 1&#xff1a;Servlet 2&#xff1a;总结 二&#xff1a;MVC …...

使用ThorUi

摘要&#xff1a; 官网 今天遇到一个老项目&#xff0c;使用的是ThorUi组件库&#xff01;之前没有用过这组件库&#xff0c;所以记录一下不同框架是使用情况&#xff01; ThorUI 是一个基于 Thorium 的 UI 框架&#xff0c;用于构建跨平台的桌面应用程序。如果你打算使用 Thor…...

【Promise】自定义promise

文章目录 1 定义整体结构2 Promise 构造函数的实现3 promise.then()与promise.catch()的实现4 Promise.resolve()与Promise.reject()的实现5 Promise.all与Promise.race()的实现6 Promise.resolveDelay()与Promise.rejectDelay()的实现 1 定义整体结构 /*自定义 Promise */ (f…...

Docker容器部署Windows系统教程

本章教程,使用Docker容器部署一个Windows操作系统容器。 一、拉取容器 dockurr/windows:latest二、运行容器 docker run -dit --name win11 -v $PWD:/share -v /opt/iso/win11.iso:/custom.iso -p 3389:3389 -p 8006:8006 --device=/dev/kvm --cap-add NET_ADMIN --stop-tim…...

js id数组转字符串

在 JavaScript 中&#xff0c;将数组转换为字符串有几种常见的方法。每种方法都有其特定的用途和格式。以下是一些常用的方法&#xff1a; 1. Array.prototype.join(separator) join 方法将数组的所有元素连接成一个字符串&#xff0c;并使用指定的分隔符&#xff08;默认为逗…...

SEO_避开这些SEO误区,优化效果事半功倍

SEO误区&#xff1a;避开这些误区&#xff0c;优化效果事半功倍 在当今竞争激烈的互联网环境中&#xff0c;搜索引擎优化&#xff08;SEO&#xff09;成为了每一个网站主的必修课。不少人在SEO实践中却犯下了一些常见的误区&#xff0c;这些误区不仅没有提升网站的排名&#x…...

S32K312实战:用AUTOSAR Icu模块测量PWM占空比与周期(基于NXP MCAL与EB Tresos)

S32K312实战&#xff1a;AUTOSAR Icu模块精准测量PWM信号的工程实践 在汽车电子开发中&#xff0c;PWM信号的精确测量是ECU功能实现的基础环节。无论是发动机控制单元中的转速信号采集&#xff0c;还是车身电子中的执行器状态反馈&#xff0c;都需要对PWM信号的周期、占空比等参…...

苹果设备激活锁终极解锁指南:5步免费绕开iOS 15-16的iCloud限制

苹果设备激活锁终极解锁指南&#xff1a;5步免费绕开iOS 15-16的iCloud限制 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 还在为忘记Apple ID密码而无法使用自己的iPhone或iPad而烦恼吗&#xff1f;…...

5大核心价值重构云游戏体验:Sunshine让你的游戏突破硬件与空间限制

5大核心价值重构云游戏体验&#xff1a;Sunshine让你的游戏突破硬件与空间限制 【免费下载链接】Sunshine Self-hosted game stream host for Moonlight. 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine 在数字娱乐日益碎片化的今天&#xff0c;玩家们面临…...

[高级配置]:解决Insyde BIOS隐藏选项访问难题的开源工具技术指南

[高级配置]&#xff1a;解决Insyde BIOS隐藏选项访问难题的开源工具技术指南 【免费下载链接】LEGION_Y7000Series_Insyde_Advanced_Settings_Tools 支持一键修改 Insyde BIOS 隐藏选项的小工具&#xff0c;例如关闭CFG LOCK、修改DVMT等等 项目地址: https://gitcode.com/gh…...

突破平台限制:res-downloader高效捕获网络资源的全方位解决方案

突破平台限制&#xff1a;res-downloader高效捕获网络资源的全方位解决方案 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在…...

YimMenu完全指南:GTA5免费辅助工具从入门到精通

YimMenu完全指南&#xff1a;GTA5免费辅助工具从入门到精通 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...

AssetRipper终极指南:如何免费快速提取Unity游戏资源

AssetRipper终极指南&#xff1a;如何免费快速提取Unity游戏资源 【免费下载链接】AssetRipper GUI Application to work with engine assets, asset bundles, and serialized files 项目地址: https://gitcode.com/GitHub_Trending/as/AssetRipper AssetRipper是一款强…...

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用:智能威胁分析与响应

Alibaba DASD-4B Thinking 对话工具在网络安全领域的应用&#xff1a;智能威胁分析与响应 每天&#xff0c;安全运维团队的工程师们都要面对海量的安全告警。防火墙日志、入侵检测系统的报警、终端防护软件的提示……这些信息像潮水一样涌来。传统的处理方式&#xff0c;往往依…...

超越rviz_satellite:用Mapviz实现高精度SLAM地图与卫星图叠加(附开源数据集测试)

超越rviz_satellite&#xff1a;用Mapviz实现高精度SLAM地图与卫星图叠加&#xff08;附开源数据集测试&#xff09; 当自动驾驶车辆在复杂城市环境中穿行&#xff0c;或是无人机在未知区域执行勘探任务时&#xff0c;将实时构建的SLAM地图与卫星影像精准叠加&#xff0c;已成…...