【c语言】--qsort快速排序【附模拟实现】

  • 它是库函数
  • 它可以排任何类型的数据,如整形数据,字符串数据,结构体数据,而我们一般写的冒泡排序, 选择排序只能排一种数据,有一定的局限性
  • qsort与冒泡排序相似,只是比较不同数据的方法不同,如字符串比较要用strcmp,不能直接用大于或等于比较,因为比较大小方法不同,需自己写个比较大小函数,再传给qsort才行

二、qsort函数原型

qsort需引用头文件stdlib.hsearch.h


qsort函数原型:

void qsort( void* base, size_t num, size_t size, int (*compar)(const void *e1,const void *e2))

qsort函数参数:

  • void* base:base中存放待排序数据第一个对象的地址,设为void*是因为它是一个无地址的指针,可以接收任何类型的指针,所以base可以放任何类型的地址【void*不能进行解引用操作且不能对其进行加减整数
  • size-t num:待排序数据的元素个数
  • size-t size:待排序数据中一个元素的大小,单位:字节
  • int (*compar)(const void *e1,const void *e2):一个函数指针,通过传入比较大小的函数(需要自己写)用来比较待排序数据中所传入两个元素的大小,(若排为升序,compar函数返回值>0就交换【第一个数>第二个数】,若排为降序compar函数<0就交换【第一个数<第二个数】,只要==0,不用交换)
  • 本质上qsort函数就像冒泡排序两个元素一点一点往下比的
  • 如果排为升序e1-e2,即第一个元素-第二个元素,排为降序则是e2-e1,即函数第二个元素-第一个元素,因
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值