(C语言)qsort函数详解

目录

1. qsort解释

2. qsort实例

2.1 qsort排列整形数组类型:

2.2 qsort排列结构体类型数据(字符串):

2.3 qsort排列结构体类型数据(整形):


1. qsort解释

我们可以进入网站:qsort - C++ Reference (cplusplus.com)

来看一下这个函数的介绍:

头文件为:stdib.h

qsort函数可以排列多种类型的数据,这就有回调函数的作用;

第一个参数是void*类型,第二个和第三个参数都是size_t类型,第四个参数是是int (*)(const void*,const void*)及函数指针类型。

第四个参数是要我们自己写出函数,在这就是回调函数

再往下看:

base:是要排列数组的第一个元素的地址,转换为void*类型

num:是数组中的元素数

size:数组中每个元素的大小,(以字节为单位)

compar:是指向比较两个元素的函数指针qsort会重复调用这个函数,比较两个元素。应遵循以下类型:int copar(consr void*p1const void*p2)

将两个指针作为参数(均转换为void*),函数通过返回值值来确定元素的顺序,

p1指向的元素在p2指向的元素之前,

若p1>p2返回正值,p1=p2返回0,p1<p2返回负值,这样会将数组元素变为升序排列。

若p1>p2返回负值,p1=p2返回0,p1<p2返回正值,这样会将数组元素变为降序排序。

2. qsort实例

下面我们来看看如何使用

2.1 qsort排列整形数组类型:

2.2 qsort排列结构体类型数据(字符串):

执行结果:

2.3 qsort排列结构体类型数据(整形):

执行结果:

我面我会用模拟实现qsort的函数功能,敬请期待。。。

感谢观看,感谢指正。

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

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

相关文章

STM32 (2)

1.stm32编程模型 将C语言程序烧录到芯片中会存储在单片机的flsah存储器中&#xff0c;给芯片上电后&#xff0c;Flash中的程序会逐条进入到CPU中去执行&#xff0c;进而CPU去控制各种模块&#xff08;即外设&#xff09;去实现各种功能。 2.寄存器和寄存器编程 CPU通过控制其…

RabbitMQ使用

目录 初识MQ 同步通讯和异步通讯​编辑 同步通讯 同步调用存在的问题 总结 同步调用优点&#xff1a; 同步调用的问题&#xff1a; 异步通讯 事件驱动优势 总结 什么是MQ RabbitMQ快速入门 RabbitMQ概述和安装 RabbitMQ结构和概念​编辑 总结 常见消息模型 不同…

matplotlib折线图

matplotlib折线图 假设一天中每隔两个小时的气温(℃)分别是[15,13,14.5,17,20,25,26,26,27,22,18,15], 画出对应的气温折线图 # 导入库 from matplotlib import pyplot as plt# 传入x轴和y轴数据, 是一个可迭代对象 # x轴和y轴的数据一起组成了所有要绘制出来的坐标 x range…

如何在Vue中实现事件处理?

Vue是一种流行的JavaScript框架&#xff0c;广泛应用于前端开发。在Vue中&#xff0c;事件处理是一个非常关键的概念&#xff0c;可以帮助我们实现用户与页面的交互&#xff0c;今天我们就来探讨一下如何在Vue中实现事件处理。 首先&#xff0c;让我们先了解一下在Vue中如何绑…

CentOS下安装Kafka3

kafka是分布式消息队列&#xff0c;本文讲述其在centos&#xff08;centos 7.5&#xff09;下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html 首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件&#xff08;官网的压缩包…

2024-03-03 作业

作业要求&#xff1a; 1.使用fwrite、fread将一张随意的bmp图片&#xff0c;修改成德国的国旗 2.使用提供的getch函数&#xff0c;编写一个专门用来输入密码的函数&#xff0c;要求输入密码的时候&#xff0c;显示 * 号&#xff0c;输入回车的时候&#xff0c;密码输入结束 作业…

[Java 探索之路~大数据篇] 新时代大数据流处理入门指南

本文主要介绍大数据基础&#xff0c;以及 flink 流计算 文章目录 【基础知识】1. 批处理与流处理1.批处理2.流处理 2. 为什么需要一个优秀的流处理框架1. 股票交易的业务场景2.生产者——消费者模型3. 流处理框架要解决的诸多问题&#xff08;1&#xff09;可扩展性&#xff08…

数据分析-Pandas数据的画图设置

数据分析-Pandas数据的画图设置 数据分析和处理中&#xff0c;难免会遇到各种数据&#xff0c;那么数据呈现怎样的规律呢&#xff1f;不管金融数据&#xff0c;风控数据&#xff0c;营销数据等等&#xff0c;莫不如此。如何通过图示展示数据的规律&#xff1f; 数据表&#x…

LSTM 长短期记忆递归神经网络

1、神经网络简介 1.1 神经网络起源 人工神经网络&#xff08;Aritificial Neural Networks, ANN&#xff09;是一种仿生的网络结构&#xff0c;起源于对人类大脑的研究。人工神经网络&#xff08;Aritificial Neural Networks&#xff09;也常被简称为神经网络&#xff08;Ne…

2024-03-03 c++

&#x1f338; MFC进度条控件 | Progress Control 1。新建MFC项目&#xff08;基于对话框、静态库&#xff09; 2。添加控件&#xff0c;删除初始的3个多余控件 加1个progress control&#xff0c;修改其marquee为true&#xff0c;添加变量&#xff1a;变量名为test_progress。…

如何开好一家汽车美容店,汽车美容保养与装饰教学

一、教程描述 本套教程共由17张VCD组合而成&#xff0c;教程内容主要包括&#xff1a;美容店的设立和管理&#xff0c;汽车系统与内部结构&#xff0c;汽车美容工具与美容设备&#xff0c;美容用品的选择与使用&#xff0c;车身打蜡镀膜与内外清洁&#xff0c;车身抛光与漆面处…

jmeter 命令行用法、文件解读、生成报告

当前版本&#xff1a; jmeter 5.6.3mysql 5.7.39 简介 本篇文章主要介绍如何配置jmeter使用内存&#xff0c;出现的一些异常如何处理&#xff0c;以及详细描述运行时的字段说明。最后在目录4介绍使用案例&#xff0c;包括&#xff1a;基本用法、测试完成后如何生成报告、测试结…