冒泡排序 和 qsort排序

 

目录

冒泡排序

冒泡排序部分 

输出函数部分

主函数部分 

总代码

 控制台输出显示

总代码解释

 冒泡排序优化

 冒泡排序

 主函数

总代码 

代码优化解释

qsort 排序

qsort 的介绍

 使用qsort排序整型数据

使用qsort排序结构数据


 

冒泡排序

首先,我先介绍我的冒泡排序代码,分为三个部分:

1.冒泡排序

2.输出

3.主函数

冒泡排序部分 

void Bubble_sort(int* a, int sz)
{int i = 0;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}

 

输出函数部分

void Print(int* a, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");
}

 

主函数部分 

int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//打印数组Print(a, sz);return 0;
}

 

总代码

void Bubble_sort(int* a, int sz)
{int i = 0;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}}
}void Print(int* a, int sz)
{int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");
}int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//打印数组Print(a, sz);return 0;
}

 控制台输出显示

总代码解释


 

 冒泡排序优化

优化部分:

1.在冒泡排序中,定义了一个flag来控制数组的有序(升序 or 降序);

2.输出部分放在主函数中. 

 冒泡排序

void Bubble_sort(int* a, int sz)
{int i = 0, flag = 1;for (i = 0; i < (sz - 1); i++){int j = 0;for (j = 0; j < ((sz - 1) - i); j++){if (a[j] > a[j + 1]){flag = 0;int temp = a[j];a[j] = a[j + 1];a[j + 1] = temp;}}if (flag == 1){break;}}
}

 

 主函数

int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);//冒泡排序Bubble_sort(a, sz);//输出int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");return 0;
}

 

总代码 

代码优化解释


 

qsort 排序

qsort 的介绍


 

 使用qsort排序整型数据

int int_cmp(const void* p1,const void* p2)
{return (*(int*)p1 - *(int*)p2);
}int main()
{int a[10] = { 8,9,6,1,4,66,7,3,5,2 };int sz = sizeof(a) / sizeof(a[0]);qsort(a, sz, sizeof(int), int_cmp);int i = 0;for (i = 0; i < sz; i++){printf("%d ", a[i]);}printf("\n");return 0;
}

代码解释 

在qsort的第四个参数 int_cmp 

(*(int*)p1)  表示的是把p1强制类型转换成int,再解引用

控制台显示输出如👆上面冒泡结果的相同

使用qsort排序结构数据

在这篇文章中 (链接)-->一.学生成绩管理系统(简单) -->按学生的平均分进行从高到低排序 

能找到并详细讲解


 ***********************************************************分割线*****************************************************************************
完结!!!
感谢浏览和阅读。
等等等等一下,分享最近喜欢的一句话:

“风停在窗边嘱咐我,要热爱这个世界”。

我是白子寰,如果你喜欢我的作品,不妨你留个点赞+关注让我知道你曾来过。
你的点赞和关注是我持续写作的动力!!! 
好了划走把。

 

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

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

相关文章

ARM总结and复习

安装交叉编译工具链 a. 为什么安装 因为arm公司的指令集在不断迭代升级&#xff0c;指令集日益增多,而架构是基于指令集研发的&#xff0c;所以架构不一样&#xff0c;指令集也不一样 eg:arm架构使用的是arm指令集 x86架构使用的是x86指令集 而我们日常开发环境中linux的架构…

常用的电阻、电容的种类和应用场合?

电阻的 a.按阻值特性:固定电阻、可调电阻、特种电阻(敏感电阻)&#xff0c;不能调节的,我们称之为固定电阻,而可以调节的,我们称之为可调电阻.常见的例如收音机音量调节的,主要应用于电压分配的,我们称之为电位器. b.按制造材料:碳膜电阻、金属膜电阻、线绕电阻&#xff0c;捷…

win11修改网络算法为BBR2_提升网络环境质量

Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法&#xff0c;玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法&#xff0c;BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。 如果你日常网络经常丢包或者高延迟可以尝试切换为BBR2算法。…

OpenAI工作环境曝光:高薪背后的996;Quora的转变:由知识宝库至信息垃圾场

&#x1f989; AI新闻 &#x1f680; OpenAI工作环境曝光&#xff1a;高薪背后的996 摘要&#xff1a;近日&#xff0c;多位OpenAI匿名员工在求职网站Glassdoor上披露了公司的工作环境和公司文化&#xff0c;包括高薪水和优厚的福利待遇&#xff0c;但同时伴随着996的加班文化…

CV论文--2024.3.4

1、Deep Networks Always Grok and Here is Why 中文标题&#xff1a;深度网络总是让人摸不着头脑&#xff0c;原因如下 简介&#xff1a;本文探讨了深度神经网络&#xff08;DNN&#xff09;中一种称为"延迟泛化"或"Grokking"的现象。在接近零的训练误差…

00X集——样条曲线(spline)和多线段(pl)和面域(region)

样条曲线是经过或接近影响曲线形状的一系列点的平滑曲线。 默认情况下&#xff0c;样条曲线是一系列 3 阶&#xff08;也称为“三次”&#xff09;多项式的过渡曲线段。这些曲线在技术上称为非均匀有理 B 样条 (NURBS)&#xff0c;但为简便起见&#xff0c;称为样条曲线。三次…

怎么倒放视频?3个倒放方法分享给你

怎么倒放视频&#xff1f;倒放视频不仅有趣且充满创意&#xff0c;而且还能创造出一种令人惊叹的视觉效果&#xff0c;将观众带入一个全新的时空维度。通过将动作和事件倒放&#xff0c;我们可以观察到平时难以察觉的细节&#xff0c;理解事物运行的逆向逻辑。这种独特的编辑手…

电脑不小心格式化了,怎么恢复?

在这个数字化时代&#xff0c;电脑已经成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;有时我们可能会不小心格式化电脑硬盘&#xff0c;导致重要数据的丢失。那么&#xff0c;电脑不小心格式化了&#xff0c;怎么恢复&#xff1f; 别着急&#xff0c;在本篇攻略中&…

YOLOv9改进 | 基础篇 | 提供YOLOv9全系列支持V9n、V9s、V9m、V9l、V9x的修改方式(全网独家首发)

一、本文介绍 大家好&#xff0c;本文给大家带来的是2024年2月21日全新发布的SOTA模型YOLOv9的补全教程&#xff08;算是一种补全吧我个人认为&#xff09;&#xff0c;了解V7的读者都知道V7系列是不支持模型深度和宽度的修改的也就是没有办法像YOLOv8那样有多个版本&#xff…

spring boot集成Elasticsearch 7.16.3

环境&#xff1a;Elasticsearch 版本 7.16.3 Elasticsearch for windows下载地址 windows 若依 spring boot版本 2.6.0 pom文件添加 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch<…

曲线生成 | 图解Dubins曲线生成原理(附ROS C++/Python/Matlab仿真)

目录 0 专栏介绍1 什么是Dubins曲线&#xff1f;2 Dubins曲线原理2.1 坐标变换2.2 单步运动公式2.3 曲线模式 3 Dubins曲线生成算法4 仿真实现4.1 ROS C实现4.2 Python实现4.3 Matlab实现 0 专栏介绍 &#x1f525;附C/Python/Matlab全套代码&#x1f525;课程设计、毕业设计、…

美国亚利桑那州立大学宣布与OpenAI建立合作伙伴关系!

美国亚利桑那州立大学 (Arizona State University) 在官网宣布—— 将与OpenAI建立合作伙伴关系&#xff01; 该校也成为了第一个与OpenAI合作的高等教育机构。 来源&#xff1a;亚利桑那州立大学官网 亚利桑那州立大学校长表示&#xff1a; “我们认识到人工智能系统将持续…