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

排序算法-冒泡排序(C语言实现)

简介😀

冒泡排序是一种简单但效率较低的排序算法。它重复地扫描待排序元素列表,比较相邻的两个元素,并将顺序错误的元素交换位置,直到整个列表排序完成。

实现🧐

  • 以下内容为本人原创,经过自己整理得出,有问题欢迎评论区留言,引用请标明出处,谢谢!🫡

冒泡排序

/*** @author bhlu* @date 2023-08-16* * @brief 冒泡排序* * @param[in] data 数字数组* @param[in] size 数组长度* * @return 无
*/
void bubble_sort(int data[], int size)
{// 按照上图的方法,遍历size-1次for(int i = 0; i < size - 1; i++){// 标记: 用于判断这次遍历是否了数据,0->修改,1->未修改int flag = 1;// 每轮判断的次数,按上图的方法,第一轮是size-1,然后每次都会少一次,可以使用size-1-ifor(int j = 0; j < size - 1 - i; j++){// 将索引指向的数据与索引下一个数据进行比较,大于就换位置if(data[j] > data[j+1]){int swap = data[j];data[j] = data[j+1];data[j+1] = swap;flag = 0;  // 改变标记}}if(flag)// 如果还是1,说明已经排好了,就breakbreak;}
}

完整代码🫠

  • sort.c
#include "sort.h"/*** @author bhlu* @date 2023-08-16* * @brief 冒泡排序* * @param[in] data 数字数组* @param[in] size 数组长度* * @return 无
*/
void bubble_sort(int data[], int size)
{// 按照上图的方法,遍历size-1次for(int i = 0; i < size - 1; i++){// 标记: 用于判断这次遍历是否了数据,0->修改,1->未修改int flag = 1;// 每轮判断的次数,按上图的方法,第一轮是size-1,然后每次都会少一次,可以使用size-1-ifor(int j = 0; j < size - 1 - i; j++){// 将索引指向的数据与索引下一个数据进行比较,大于就换位置if(data[j] > data[j+1]){int swap = data[j];data[j] = data[j+1];data[j+1] = swap;flag = 0;  // 改变标记}}if(flag)// 如果还是1,说明已经排好了,就breakbreak;}
}
  • sort.h
#ifndef __SORT_H
#define __SORT_H#include <stdio.h>extern void bubble_sort(int data[], int size);#endif
  • main.c
#include "sort.h"int main(void)
{int data[] = {10, 5, 2, 3, 4, 7, 6};int size = sizeof(data) / sizeof(data[0]);printf("排序前: ");for (int i = 0; i < size; i++)printf("%d ", data[i]);printf("\n");bubble_sort(data, size);printf("排序后: ");for (int i = 0; i < size; i++)printf("%d ", data[i]);printf("\n");return 0;
}

相关文章:

排序算法-冒泡排序(C语言实现)

简介&#x1f600; 冒泡排序是一种简单但效率较低的排序算法。它重复地扫描待排序元素列表&#xff0c;比较相邻的两个元素&#xff0c;并将顺序错误的元素交换位置&#xff0c;直到整个列表排序完成。 实现&#x1f9d0; 以下内容为本人原创&#xff0c;经过自己整理得出&am…...

星际争霸之小霸王之小蜜蜂(一)

目录 前言 一、安装pygame库 1、pygame库简介 2、在windows系统安装pygame库 二 、搭建游戏框架 1、创建游戏窗口 2、改变窗口颜色 总结 前言 大家应该都看过或者都听说过python神书“大蟒蛇”&#xff0c;上面有一个案例是《外星人入侵》&#xff0c;游戏介绍让我想起了上…...

图数据库_Neo4j基于docker服务版安装_Neo4j Desktop桌面版安装---Neo4j图数据库工作笔记0004

然后我们来看看如何用docker来安装Neo4j community server 首先去执行docker pull neo4j:3.5.22-community 去拉取镜像 然后执行命令就可以安装了 可以用docker ps查看一下 看看暴露了哪些端口 然后再看一下访问一下这个时候,要用IP地址了注意 然后再来看一下安装Desktop 去下…...

docker-compose部署可道云

文章目录 一. Mac1.1 下载源码1.2 部署1.2.1 修改密码部署(可忽略)1.2.2 直接部署 1.3 卸载1.4 访问 二. Win2.1 下载源码2.2 部署2.2.1 修改密码部署(可忽略)2.2.2 直接部署 2.3 卸载 一. Mac 1.1 下载源码 mkdir -p /Users/wanfei/docker-compose && cd /Users/wan…...

Windows上使用FFmpeg实现本地视频推送模拟海康协议rtsp视频流

场景 Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览&#xff1a; Nginx搭建RTMP服务器FFmpeg实现海康威视摄像头预览_nginx rtmp 海康摄像头_霸道流氓气质的博客-CSDN博客 上面记录的是使用FFmpeg拉取海康协议摄像头的rtsp流并推流到流媒体服务器。 如果在其它业务场景…...

单片机之从C语言基础到专家编程 - 4 C语言基础 - 4.8 运算符

1.算术运算符 运算符名称备注加法运算符双目运算&#xff0c;a b-减法运算符双目运算&#xff0c;a - b*乘法运算符双目运算&#xff0c;a * b/除法运算符双目运算&#xff0c;a / b%求余运算符双目运算, a % b自增运算符单目运算, a–自减运算符单目运算, a– 2.关系运算符…...

轮腿机器人的PID控制

1 PID介绍 PID&#xff08;Proportional Integral Derivative&#xff09;控制系统。其实质是根据输入的偏差值&#xff0c;按比例、积分、微分的函数关系进行运算&#xff0c;运算结果用以输出进行控制。它是在长期的工程实践中总结出来的一套控制方法&#xff0c;实际运行经…...

ChatGPT爆火,会给教育带来什么样的影响或者冲击?

近来&#xff0c;人工智能聊天机器人ChatGPT连上热搜&#xff0c;火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力&#xff0c;可谓是“上知天文&#xff0c;下知地理”&#xff0c;而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出&#xff0c;便迅速在社…...

Servlet+JDBC实战开发书店项目讲解第三篇:商品查询实现

ServletJDBC实战开发书店项目讲解第三篇&#xff1a;商品查询实现 本篇博客将介绍如何在ServletJDBC实战开发书店项目中实现商品查询功能。我们将从设计数据库表结构和实体类开始&#xff0c;一步一步详细讲解代码实现过程&#xff0c;包括前端页面的设计和后端Servlet代码的编…...

爬虫逆向实战(十七)--某某丁简历登录

一、数据接口分析 主页地址&#xff1a;某某丁简历 1、抓包 通过抓包可以发现数据接口是submit 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个enPassword加密参数 请求头是否加密&#xff1f; 通过查看请求头可以发现有一个To…...

《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言设计笔记,开源GPS车辆跟踪器,一键生成RTOS任务链表

周报汇总地址&#xff1a;嵌入式周报 - uCOS & uCGUI & emWin & embOS & TouchGFX & ThreadX - 硬汉嵌入式论坛 - Powered by Discuz! 视频版&#xff1a; https://www.bilibili.com/video/BV1Cr4y1d7Mp/ 《安富莱嵌入式周报》第320期&#xff1a;键盘敲击…...

DRF 缓存

应用环境 django4.2.3 &#xff0c;python3.10 由于对于服务而言&#xff0c;有些数据查询起来比较费时&#xff0c;所以&#xff0c;对于有些数据&#xff0c;我们需要将其缓存。 最近做了一个服务&#xff0c;用的时 DRF 的架构&#xff0c;刚好涉及缓存&#xff0c;特此记…...

Collada .dae文件格式简明教程【3D】

当你从互联网下载 3D 模型时&#xff0c;可能会在格式列表中看到 .dae 格式。 它是什么&#xff1f; 推荐&#xff1a;用 NSDT编辑器 快速搭建可编程3D场景。 1、Collada DAE概述 COLLADA是COLLAborative Design Activity&#xff08;中文&#xff1a;协作设计活动&#xff09…...

在K8s上处理nginx

基本说明 创建一个名为ssl的TLS类型的Secret对象&#xff0c;用于存储证书和密钥信息。 kubectl create secret tls ssl --certserver.crt --keyserver.key配置Nginx的events块&#xff0c;设置worker连接数为1024。 events {worker_connections 1024; }配置Nginx的http块&a…...

嵌入式:ARM Day4

一、自己编写代码实现三盏灯点亮 源码&#xff1a; .text .global _start _start: 进行一次初始化bl RCC_INITbl LED1_INITbl LED2_INITbl LED3_INITb looploop: 循环开关灯bl LED1_ONbl delay_1sbl LED1_OFFbl delay_1sbl LED2_ONbl delay_1sbl LED2_OFFbl delay_1sbl…...

SpringBoot案例-员工管理-分页条件查询

根据页面原型&#xff0c;明确需求 页面原型 需求 查看接口文档 接口文档的链接如下&#xff1a; 【腾讯文档】SpringBoot案例所需文档 https://docs.qq.com/doc/DUkRiTWVaUmFVck9N 思路分析 分页条件查询就时将条件查询的结果进行分页展示&#xff0c;由于有的条件可能设…...

python控制obs实现无缝切换场景!obs-websocket-py

前言 最近一直在研究孪生数字人wav2lip。目前成果可直接输入高清嘴型&#xff0c;2070显卡1分钟音频2.6分钟输出。在直播逻辑上可以做到1比1.3这样&#xff0c;所以现在开始研究直播。在逻辑上涉及到了无缝切换&#xff0c;看到csdn上有一篇文章还要vip解锁。。。那自己研究吧…...

Vue3实现图片懒加载及自定义懒加载指令

Vue3实现图片懒加载及自定义懒加载指令 前言1.使用vue3-lazyload插件2.自定义v-lazy懒加载指令2.1 使用VueUse2.2 使用IntersectionObserver 前言 图片懒加载是一种常见性能优化的方式&#xff0c;它只去加载可视区域图片&#xff0c;而不是在网页加载完毕后就立即加载所有图片…...

LeetCode150道面试经典题-- 环形链表(简单)

1.题目 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链表中的位置&…...

音视频学习-音视频基础

文章目录 一、 音视频录制原理二、音视频播放原理三、图像基础概念1.像素2.分辨率3.位深4.帧率5.码率6.Stride跨距 四、RGB、YUV1.RGB2.YUV1. 4:4:4格式2. 4:2:2格式3. 4:2:0格式4. 4:2:0数据格式对比 3.RGB和YUV的转换4.YUV Stride对齐问题 五、视频的主要概念1.基本概念2.I P…...

别再手动发卡了!2025新版ZFAKA搭配宝塔面板,30分钟搞定你的专属自动售卡站

2025年ZFAKA自动售卡系统&#xff1a;零基础30分钟搭建全攻略 在数字商品交易日益火爆的今天&#xff0c;手动处理订单不仅效率低下&#xff0c;还容易出错。想象一下凌晨三点被订单提醒吵醒&#xff0c;手忙脚乱地复制卡密发给买家——这种场景对于个体创业者来说再熟悉不过了…...

中文文本结构化落地指南:BERT-通用领域模型多行业应用案例

中文文本结构化落地指南&#xff1a;BERT-通用领域模型多行业应用案例 1. 文本分割技术背景 在日常工作和学习中&#xff0c;我们经常会遇到大段的连续文本&#xff0c;比如会议记录、讲座文稿、采访实录等。这些文本通常缺乏段落分隔&#xff0c;读起来费时费力&#xff0c;…...

如何实现Chaos Mesh全链路国际化:从文档到UI的完整指南

如何实现Chaos Mesh全链路国际化&#xff1a;从文档到UI的完整指南 【免费下载链接】chaos-mesh Chaos Mesh 是一个云原生混沌工程平台&#xff0c;用于测试、故障注入和混沌工程。 * 用于混沌工程、故障注入和流量管理、支持 Prometheus 和 Grafana。 * 有什么特点&#xff1a…...

【Serverless架构生死线】:Java函数冷启动超时率>17%?2024最新CNCF基准测试下的3层防御体系构建

第一章&#xff1a;Serverless架构下Java函数冷启动的生死挑战在Serverless平台&#xff08;如AWS Lambda、阿里云函数计算、腾讯云SCF&#xff09;中&#xff0c;Java函数因JVM初始化、类加载、字节码验证及Spring等框架启动开销&#xff0c;常面临数百毫秒至数秒级的冷启动延…...

RPCS3完全攻略:从零开始打造你的PC端PS3游戏中心

RPCS3完全攻略&#xff1a;从零开始打造你的PC端PS3游戏中心 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 还在为无法重温经典PS3游戏而烦恼吗&#xff1f;想要在电脑上体验《最后生还者》、《神秘海域》等索…...

【SpringAI篇04】:从内存到MySQL,构建可重启的智能对话系统

1. 为什么需要从内存存储升级到数据库持久化 刚开始接触SpringAI开发时&#xff0c;很多开发者都会选择默认的内存存储方案。这种方案简单直接&#xff0c;不需要额外配置数据库&#xff0c;特别适合快速原型开发。但当你真正要把应用部署到生产环境时&#xff0c;就会发现内存…...

文脉定序系统处理多语言语义排序实战:跨语言检索效果展示

文脉定序系统处理多语言语义排序实战&#xff1a;跨语言检索效果展示 你有没有遇到过这样的烦恼&#xff1f;想找一份关于“机器学习”的日文资料&#xff0c;却只能用中文关键词去搜&#xff0c;结果要么搜不到&#xff0c;要么搜出来的东西完全不对路。或者&#xff0c;你手…...

开源串流新选择:用Sunshine打造跨设备游戏共享系统

开源串流新选择&#xff1a;用Sunshine打造跨设备游戏共享系统 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器&#xff0c;支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine …...

手动侧开门款屏蔽箱 适用蓝牙 WIFI测试 无线测试屏蔽箱GX-5950A

GX-5950A屏蔽箱品名:屏蔽箱型号:GX-5950A一、主要功能及适用范围&#xff1a;1 该屏蔽箱适用于无线通讯测试、1 EMI测试、1 耦合测试、1 RF功能测试。适用于手机&#xff0c;平板计算机&#xff0c;蓝牙&#xff0c;wi-fi&#xff0c;天线等测试&#…...

收藏!小白程序员必看:轻松掌握大模型核心技术,解决领域与时间限制难题!

通用大模型的两个硬伤——领域限制&#xff08;不知道企业内部数据&#xff09;和时间限制&#xff08;无法获取最新信息&#xff09;。 产品设计的第一步&#xff0c;不是写提示词&#xff0c;是厘清"模型不知道什么"。这与传统软件开发思维完全不同——传统软件是&…...