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

C语言函数实现冒泡排序

         前言

        今天我们来看看怎么使用函数的方式实现冒泡排序吧,我们以一个数组为例arr[] = {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。

        代码实现

        

#include<stdio.h>
void bubble_sort(int arr[], int sz)
{int i = 0;for (i = 0;i < sz - 1;i++){//一个数的冒泡泡排序,一趟冒泡排序int j = 0;for (j = 0;j < sz - 1 - i;j++){//如果前面的数比后面大,置换。if (arr[j] > arr[j + 1]){int tmp;tmp = arr[j];arr[j] = arr[j + 1];arr[j+1] = tmp;}}}
}
int main()
{int arr[] = { 9,8,7,6,5,4,3,2,1,0 };int sz = sizeof arr / sizeof arr[0];//冒泡排序之后输出,升序bubble_sort(arr, sz);int i;//输出for (i = 0;i < sz ;i++){printf("%d ", arr[i]);}return 0;
}

        代码解析

        我们从主函数开始吧,首先定义数组arr[] = {9,8,7,6,5,4,3,2,1,0},之后我们通过sizeof操作符来求数组中元素个数,之后我们定义函数bubble_sort来实现冒泡排序,大家这里注意喽,bubble_sort只是我们函数的名字,好了,这里我们进入函数中。

        我们定义函数的形参为数组,这里函数中的形参本质上是一个指针,数组名本质上是数组元素的首地址,当我们将数组元素个数的计算传入函数中时,在计算数组中元素个数的时候sz会为1,这样我们根本就不会进入循环中,程序出现错误,所以我们将sz的计算放置在主函数里,之后通过传参的方式将sz的值传入函数中。

        好了,我们知道数组中元素个数之后,我们就知道了在这个数组中我们需要对多少个数进行冒泡排序,一共进行几趟,之后我们从第一个数开始,与他相邻的数字比较,如果上一个数字比下一个数字大的话,我们将两个数字进行置换。直到我们第一次置换的数字找到它的位置,我们一次的冒泡排序就结束了。我们第二次就从第二个数字开始,这里我们进行一个数的冒泡排序时就需要逐渐递减到最后一个数字,所以我们这里循环使用j<sz-1-i,直到我们最后一个数完成冒泡排序,循环结束。

        置换图解

相关文章:

C语言函数实现冒泡排序

前言 今天我们来看看怎么使用函数的方式实现冒泡排序吧&#xff0c;我们以一个数组为例arr[] {9,8,7,6,5,4,3,2,1,0},我们将这个数组通过冒泡排序的方式让他变为升序吧。 代码实现 #include<stdio.h> void bubble_sort(int arr[], int sz) {int i 0;for (i 0;i < s…...

区间概率预测python|QR-CNN-BiLSTM+KDE分位数-卷积-双向长短期记忆神经网络-时间序列区间概率预测+核密度估计

区间预测python|QR-CNN-BiLSTMKDE分位数-卷积-双向长短期记忆神经网络-核密度估计-回归时间序列区间预测 模型输出展示&#xff1a; (图中是只设置了20次迭代的预测结果&#xff0c;宽度较宽&#xff0c;可自行修改迭代参数&#xff0c;获取更窄的预测区间&#xff09; 注&am…...

Java 分支结构 - if…else/switch

顺序结构只能顺序执行&#xff0c;不能进行判断和选择&#xff0c;因此需要分支结构。 Java有两种分支结构&#xff1a; if语句switch语句 if语句 一个if语句包含一个布尔表达式和一条或多条语句。 语法 If 语句的用语法如下&#xff1a; if(布尔表达式) {//如果布尔表达…...

【Unity每日一记】如何从0到1将特效图集制作成一个特效

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;Uni…...

磁力链接的示例与解释

磁力链接&#xff08;Magnet URI scheme&#xff09;是一种特殊类型的统一资源标识符&#xff08;URI&#xff09;&#xff0c;它包含了通过特定散列函数&#xff08;如SHA-1&#xff09;得到的文件内容的散列值&#xff0c;而不是基于位置或名称的引用。这使得磁力链接成为在分…...

云存储中常用的相同子策略的高效、安全的基于属性的访问控制的论文阅读

参考文献为2022年发表的Efficient and Secure Attribute-Based Access Control With Identical Sub-Policies Frequently Used in Cloud Storage 动机 ABE是实现在云存储中一种很好的访问控制手段,但是其本身的计算开销导致在实际场景中应用收到限制。本论文研究了一种LSSS矩…...

JVM高级篇之GC

文章目录 版权声明垃圾回收器的技术演进ShenandoahShenandoah GC体验Shenandoah GC循环过程 ZGCZGC简介ZGC的版本更迭ZGC体验&使用ZGC的参数设置ZGC的调优 版权声明 本博客的内容基于我个人学习黑马程序员课程的学习笔记整理而成。我特此声明&#xff0c;所有版权属于黑马…...

第十四届蓝桥杯省赛大学C组(C/C++)三国游戏

原题链接&#xff1a;三国游戏 小蓝正在玩一款游戏。 游戏中魏蜀吴三个国家各自拥有一定数量的士兵 X,Y,Z&#xff08;一开始可以认为都为 0&#xff09;。 游戏有 n 个可能会发生的事件&#xff0c;每个事件之间相互独立且最多只会发生一次&#xff0c;当第 i 个事件发生时…...

java之static详细总结

static也叫静态&#xff0c;可以修饰成员变量、成员方法。 成员变量 按照有无static分为两种&#xff1a; 类变量&#xff1a;static修饰&#xff0c;属于类&#xff0c;与类一起加载一次&#xff0c;在内存中只有一份&#xff0c;会被类的全部对象共享实例变量&#xff08;…...

RabbitMQ3.13.x之六_RabbitMQ使用场景

RabbitMQ3.13.x之六_RabbitMQ使用场景 文章目录 RabbitMQ3.13.x之六_RabbitMQ使用场景1. 为什么选择 RabbitMQ&#xff1f;1. 可互操作2. 灵活3. 可靠 2. 常见用户案例1. 服务解耦2. 远程过程调用3. 流处理4. 物联网 1. 为什么选择 RabbitMQ&#xff1f; RabbitMQ 是一个可靠且…...

C++ 类和对象(初篇)

类的引入 C语言中&#xff0c;结构体中只能定义变量&#xff0c;在C中&#xff0c;结构体内不仅可以定义变量&#xff0c;也可以定义函数。 而为了区分C和C我们将结构体重新命名成class去定义 类的定义 标准格式&#xff1a; class className {// 类体&#xff1a;由成员函…...

微软推出GPT-4 Turbo优先使用权:Copilot for Microsoft 365商业用户享受无限制对话及增强图像生成能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

Spring Boot Actuator

概述 Spring Boot Actuator是Spring Boot的一个功能模块&#xff0c;用于提供生产环境中常见的监控和管理功能。它提供了各种端点&#xff08;endpoints&#xff09;&#xff0c;可以用于监视应用程序的运行状况、收集应用程序的指标数据以及与应用程序进行交互。 以下是Spri…...

我与C++的爱恋:类与对象(一)

​ ​ &#x1f525;个人主页&#xff1a;guoguoqiang. &#x1f525;专栏&#xff1a;我与C的爱恋 ​C语言是面向过程的&#xff0c;关注的是过程&#xff0c;分析出求解问题的步骤&#xff0c;通过函数调用逐步解决问题。 C是基于面向对象的&#xff0c;关注的是对象&…...

os模块篇(十八)

文章目录 os._exit(n)os.forkpty()os.kill(pid, sig, /)os.killpg(pgid, sig, /)os.nice(increment, /)os.pidfd_open(pid, flags0)os.plock(op, /)os.popen(cmd, moder, buffering-1)os.posix_spawn(path, argv, env, *, file_actionsNone, setpgroupNone, resetidsFalse, set…...

Oracle 数据库工作中常用知识点:sql语法与常用函数

.to_date()函数 to_date函数是Oracle特有的函数&#xff0c;该函数用来做日期转换。 举例&#xff1a; SELECT TO_DATE(‘2006-05-01 19:25:34’, ‘YYYY-MM-DD HH24:MI:SS’) FROM DUAL   日期格式&#xff1a;     YYYY、YYY、YY 分别代表4位、3位、2位的数字年    …...

软件工程

开发模型 瀑布模型 用于结构化模型开发 适用需求明确或者二次开发 原型模型 适用需求不明确 演化模型 增量模型 适用需求不明确 先做一块&#xff0c;再做一块&#xff0c;这样不断的对核心功能的审视&#xff0c;降低风险 螺旋模型 由多个模型组合成 适用需求不明…...

【御控物联】JavaScript JSON结构转换(17):数组To对象——键值互换属性重组

文章目录 一、JSON结构转换是什么&#xff1f;二、核心构件之转换映射三、案例之《JSON数组 To JSON对象》四、代码实现五、在线转换工具六、技术资料 一、JSON结构转换是什么&#xff1f; JSON结构转换指的是将一个JSON对象或JSON数组按照一定规则进行重组、筛选、映射或转换…...

免注册,ChatGPT可即时访问了!

AI又有啥进展&#xff1f;一起看看吧 Apple进军个人家用机器人 Apple在放弃自动驾驶汽车项目并推出混合现实头显后&#xff0c;正在进军个人机器人领域&#xff0c;处于开发家用环境机器人的早期阶段 报告中提到了两种可能的机器人设计。一种是移动机器人&#xff0c;可以跟…...

探索未来游戏:生成式人工智能AI如何重塑你的游戏世界?

生成式人工智能&#xff08;Generative AI&#xff09;正以前所未有的速度改变着各行各业的运作模式。其中&#xff0c;游戏产业作为科技应用的前沿阵地&#xff0c;正经历着前所未有的变革。本文将探讨生成式人工智能如何重塑游戏产业&#xff0c;以及这一变革背后的深远影响。…...

Qwen3智能字幕对齐系统在CSDN技术视频生态中的应用实践

Qwen3智能字幕对齐系统在CSDN技术视频生态中的应用实践 1. 引言 做技术视频的博主和讲师们&#xff0c;应该都遇到过这样的烦恼吧。辛辛苦苦录完一个小时的编程教程&#xff0c;光是剪辑和加字幕就得再花上大半天。尤其是字幕&#xff0c;要么得自己一句一句听写&#xff0c;…...

屏幕水印是什么?有啥用?如何设置屏幕水印?「干货图文教程」

屏幕水印是什么&#xff1f;屏幕水印&#xff0c;就是在电脑屏幕上显示的文字、图案或标志&#xff0c;就像在纸上盖章一样&#xff0c;但它出现在你的屏幕上。它可以帮助你在处理敏感信息时&#xff0c;增加一层额外的安全保护。屏幕水印有啥用&#xff1f;屏幕水印在企业信息…...

HunyuanVideo-Foley镜像解析:xFormers视频推理加速在音效生成中的复用机制

HunyuanVideo-Foley镜像解析&#xff1a;xFormers视频推理加速在音效生成中的复用机制 1. 镜像概述与核心价值 HunyuanVideo-Foley镜像是一款专为视频与音效生成任务优化的私有部署解决方案。基于RTX 4090D 24GB显存和CUDA 12.4深度调优&#xff0c;该镜像将视频生成与Foley音…...

AI不再是聊天机器人!从《Agentic Design Patterns》汲取的5大核心启示,彻底重塑你的架构思维

大多数开发者还以为&#xff0c;生成式AI的终极答案就是把大模型参数堆得更大、提示词写得更聪明&#xff0c;就能解决一切生产力难题。但最近读完Antonio Gulli的《Agentic Design Patterns》&#xff0c;我突然意识到&#xff1a;我们过去两年其实只造出了“引擎”&#xff0…...

基于SpringBoot+Vue的AI智能客服系统开发实战:从H5输入到语言提问的完整实现

最近在做一个AI智能客服项目&#xff0c;客户要求既要能在H5页面里打字提问&#xff0c;又要能直接语音对话&#xff0c;后台还得有个清晰的管理界面。这听起来简单&#xff0c;但真做起来&#xff0c;从技术选型到具体实现&#xff0c;坑可真不少。今天就把这次从零到一搭建“…...

py每日spider案例之某website反混淆后的代码

window=global; const _VER_ = "1.2.5"; (() => {window.cdn = atob(static-cdn.byteamone.cn...

企业网络改造不求人:手把手教你深信服防火墙旁挂部署(含NQA配置避坑指南)

企业级防火墙旁挂部署实战&#xff1a;深信服设备零基础配置指南 当企业网络规模逐步扩大&#xff0c;业务系统日益复杂&#xff0c;网络安全防护往往成为IT运维团队最头疼的问题之一。传统防火墙部署通常需要对现有网络架构进行大规模调整&#xff0c;不仅实施周期长&#xff…...

VSCode便携版:如何实现真正的跨设备开发自由?

VSCode便携版&#xff1a;如何实现真正的跨设备开发自由&#xff1f; 【免费下载链接】VSCode-Portable VSCode 便携版 VSCode Portable 项目地址: https://gitcode.com/gh_mirrors/vsc/VSCode-Portable 还在为不同电脑上开发环境不一致而烦恼吗&#xff1f;VSCode便携版…...

3大突破!MiroFish群体智能引擎如何重构分布式协作系统?

3大突破&#xff01;MiroFish群体智能引擎如何重构分布式协作系统&#xff1f; 【免费下载链接】MiroFish A Simple and Universal Swarm Intelligence Engine, Predicting Anything. 简洁通用的群体智能引擎&#xff0c;预测万物 项目地址: https://gitcode.com/GitHub_Tren…...

模型轻量化前沿:OpenClaw集成百川2-13B-4bits量化版的技术解析

模型轻量化前沿&#xff1a;OpenClaw集成百川2-13B-4bits量化版的技术解析 1. 为什么我们需要量化模型&#xff1f; 当我第一次尝试在本地部署百川2-13B模型时&#xff0c;16GB显存的显卡直接被"撑爆"。这让我意识到&#xff0c;想要在消费级硬件上运行大模型&…...