目录
- 前言
- 一、库函数(qsort)的含义
- 二、(qsort)函数的实现方式,话不多说,请看。
- 1. 第一个参数
- 2. 第二个参数
- 3. 第三个参数
- 4. 第四个参数
- 三、函数实现
- 四、总结
前言
我也只是一个奋斗的程序猿,仅以此篇文章,作为我学习的见证,可能我的文采不好,有时候讲的词不达意,但我尽力去做好我想做的这些事情,如果此篇文章能够给各位读者带来一定的认识,那自然是最好的。若文章中有鄙人讲错了的,欢迎评论区指点。谢谢!!!

一、库函数(qsort)的含义
- 头文件
#include <stdlib.h>
- 作用:将一个无序的数组进行有序的排列。这就是这个库函数的作用。
二、(qsort)函数的实现方式,话不多说,请看。
void qsort( void base,
size_t num,
size_t width,
cmp_int );
全是英语看不懂?别担心,让我慢慢为你道来!!!
1. 第一个参数
void base, 这个参数的意思就是 将要排序的那个数组 ,我们在写的时候,直接写数组名就行了。
2. 第二个参数
size_t num, 第二个参数的意思就是 void base,这个数组的元素个数。比如int arr[10],这里就写10,这里举个栗子,下面会继续讲解。
3. 第三个参数
size_t width, 这第三个参数呢,灰常简单,就是该数组元素的 大小 ,例如:整形数组 int arr[10],元素大小就是4个字节,因为整形(int)在内存中占的就是4个字节的空间。
4. 第四个参数
这最后一个参数呢,稍微复杂那么一点点的参数,也不难的。往下看。 cmp_int , 其实在MSDN上这里写得稍微看上去很复杂,这里呢,我将这第四个参数封装为一个函数,让我们看上去简单一点,实则原理都是相同的。具体的函数实现如下:
int cmp_int(const void* e1, const void* e2)
{
//e1-e2,得到的是升序
return *(int*)e1 - *(int*)e2;
}
1). 函数的参数
const void* e1 和 const void* e2,两个参数接收的都是数组里面元素的地址, void* 意思就是无类型指针,它呢,比较特殊,它可以接收来自任何类型的值,比如float、int、char等等,它都能接收。至于这里的 const 就是修饰(*e1)或(*e2),当有 const 修饰时,这两个的值就不能被修改,具体的,大家可以查一下,这里就不多讲了。
2). 这第四个参数的重点
当e1减去e2时,我们最后输出得到的就是 升序 的结果,当然,e2减去e1,就是 降序 。口诀: 左减右为升,反之则降 。大家可能还注意到了 e1 前面还有个圆括号,(int *)e1,为什么呢???我们所要排序的数组是整形数组 int arr[10], 当我们使用寻址操作符时,计算机会知道我们所需要访问的空间大小吗??显然,它是不知道的。寻址操作符是根据数据的类型,根据类型的大小去访问内存空间。这里我们需要 强制类型转换 为整形才可以去访问的,不然计算机也不知道我们具体需要访问多大的内存空间。是吧。
讲到这里呢,也就讲完了,我们看具体的代码实现吧。。
三、函数实现
//qsort的用法
#include <stdio.h>
#include <stdlib.h>
int cmp_int(const void* e1, const void* e2)
{
//e1-e2,得到的是升序
return *(int*)e1 - *(int*)e2;
}
int main()
{
int arr[10] = { 2,3,1,4,5,6,7,9,8,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
qsort(arr, sz, sizeof(arr[0]), cmp_int);
int i = 0;
for (i = 0; i < sz; i++)
printf("%d ", arr[i]);
return 0;
}
最后看一下我们输出的结果:
四、总结
快速排序不仅仅只是排序整形哦,还可以浮点型等等,我们在对不同类型的数据进行排序时,只需要注意最后一个参数里面的内容稍有改动,其他的大致差不多,特别记住 左减右为升,反之则降 哦,这个记住了,也就懂了这个库函数是怎么用的。
最后祝大家的编程技术更上一层楼。加油,共勉。还有啊,英语不好的小伙伴,一定要把英语补起来哦,鄙人就是高中没好好学英语,现在查文件,上GitHub等等,很费力啊。
相关推荐:
SEO如何做?全方位解析提升网站排名的秘诀,AI翻译好处
360AI写作怎样?助力创作的新风尚,ai到访
SEO优化关键技巧:提升网站排名的实战攻略,科大讯飞ai论文写作软件
seo软件是什么职位,seo用的是什么软件 ,ai感知树
wordpress seo是什么,wordpress建站seo好做吗 ,学习图文ai
ChatGPTApp怎么调大字体?提升阅读体验,让文字更清晰,推荐ai音频
SEO子-为你的网站注入流量的秘密武器,麻城网站网址优化
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
ChatGPT破解:人工智能未来的无限可能,污污AI解说
seo运营经理是什么,seo和运营的区别 ,皖妍ai宁慕晴o
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
SEO挣钱之道:如何通过SEO实现网络盈利,宁晋网站建设商家
为什么seo吸引人,为什么seo吸引人呢 ,ai路径查找器绘制树
ChatGPT回答问题,网页无法线下滚动?解决方案轻松get!,谷歌AI铃声
ChatGPT页面空白无法登录?如何解决这一困扰?,温州ai字幕生成
seo资源指的是什么,seo资料 ,绿眼AI
SEO优化引导新官网,助力企业迈向成功之路,宋轶ai换
什么是神马排名?让你的网站脱颖而出,轻松占据搜索引擎的C位!,乳山网站优化关键词排名
SEO需要什么语音,seo需要考虑什么 ,学生作业ai
ChatGPT免费版下载:智能对话助手带来的全新体验,电脑怎么下载Ai微认证
AI撰写工具的无限可能,让内容创作更高效、更精彩!
SEO优化大全:让你的网站排名轻松破局,精准引流更高效!,274357524ai
URL泄露:如何防止信息泄露带来的严重后果,抖音推广营销服务多少钱
SEO王:掌控搜索引擎优化的至高法则,助力企业飞速腾飞,网站动作优化在哪里下载
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
ChatGPT画布打不开?如何解决这一常见问题?,Ai怎么储存为Ai格式在桌面
代哥SEO-让您的网站迅速登顶搜索引擎的秘密武器,济南关键词的排名优化
AI免费文章生成器:轻松创作高质量内容的终极工具
仿写AI:智能时代的创作革命,洛江区移动房网站推广
SEO新站优化指南:快速提升排名的必备技巧,海珠网站推广哪家有名
AI免费写作一键生成,效率与创意的完美结合
什么是seo概念,什么是seo,sem ,ai音标谐音
SEO超级,助力企业站点冲刺搜索引擎排名,白云全网营销推广哪家强
用AI写文,开启创作新时代
SEO优化排名:让您的网站在搜索引擎中脱颖而出,我ai 达瓦仓决
优化百:开启数字时代的智能营销新时代,湘潭seo优化报价表
SEO攻略:搜索引擎优化,快速提升网站排名,网站推广网站优化费用
360刷排名工具选哪家?揭秘2025年最强排名优化工具!,ai写作网站哪个好一点
seo菲律宾是做什么,菲律宾网址排名 ,openl ai
SEO很多,如何在竞争激烈的市场中脱颖而出?,在SEO优化中
SEO查看-如何通过精确分析提升网站流量与排名,东丽网站建设价格
AI人工智能文章生成平台,释放创作无限可能
AI免费生成:释放创造力的秘密武器
SEO培训:助力企业实现互联网营销的无限可能,平塘网站优化推广价格
好用的人工智能AI软件推荐,让你的生活更智能!
怎么用AI生成文章?全新写作方式的揭秘与应用指南
seo网站排名优化哪家好,seo网站优化平台 ,ai斗蟋
SEO提供:如何通过精准的SEO策略提升网站流量与品牌影响力,刷关键词排名立的火星
从零到一:网站历史的演变与未来趋势,肇庆市国外网站建设平台
AI的两个主要发展阶段:从起步到突破,如何重塑未来,wps ai写作去哪里