qsort的使用及模拟实现

本文详细介绍了C语言标准库中的qsort函数,包括其功能、参数说明,以及在整型、浮点型、结构体排序中的应用,模拟冒泡排序的示例,并提到了相关头文件的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.函数原型

479d651c41d1448a88d862267722c0a3.png

 函数功能:qsort()函数的功能是对数组进行排序,数组有nmemb个元素,每个元素大小为size。参数:

  • 参数base - base指向数组的起始地址,通常该位置传入的是一个数组名。       
  • 参数nmemb - nmemb表示该数组的元素个数  。                                                             
  • 参数size - size表示该数组中每个元素的大小(字节数)                                                   
  •  参数(*compar)(const void *, const void *) - 此为指向比较函数的函数指针,决定了排序的顺序。

qsort使用时需要包含<stdlib.h>

2.应用

1.对整型排序

daa690be46254510abe989fed7e629a3.png

2.对浮点型排序

比较浮点型数据的大小时,对于double类型的数据,一般两个数据的差值小于等于1e-15时可视为相等,因为double类型的数据一般只能精确保存到第15位小数,后面数据会出现误差。float类型的数据同理,一般两个数据的差值小于等于1e-6时可视为相等。

fabs是对小数取绝对值的函数,使用时需要包含<math.h>

4bdfb39baea74cb8bff3b09fb2f1b561.png

3.对结构体排序

分为按结构体中的整型(年龄)和字符串(名字)两种方式排序,对字符串比较时需用到strcmp的库函数,需要包含<string.h>

f09e5e63ce484228a0540fa46ccb8a90.png

3.对qsort的模拟实现

仿照冒泡排序的算法进行模拟

82289cc2bf90414cba360fafcf4a1e9b.png

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我要满血复活

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值