C语言的快排函数qsort()

本文介绍了C语言中的快速排序函数qsort(),包括其平均和最坏情况下的时间复杂度,以及如何使用qsort()进行不同类型的排序。qsort()函数的参数包括数组首地址、元素个数、元素大小和比较函数。还提到了如何定义比较函数cmp,并给出了对int、char、double类型以及字符串排序的例子。此外,文章还提及了STL中的sort函数作为另一种排序方式。
摘要由CSDN通过智能技术生成

 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序n个元素要O(nlogn)次比较。在最坏状况下则需要O(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环可以在大部分的架构上很有效率地被实现出来。 
C语言在< stdlib.h> 库里提供快排函数实现,这个函数用于对数组的排序,能对大部分数据类型进行排序。

声明:

void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))

参数 :
从声明中可得,这个函数没有返回值,要有四个参数。其中第四个参数是函数指针,这里就不解释函数指针的概念了,有兴趣的自己去了解。 
 1. base – 指向要排序的数组的第一个元素的指针。 
 2. nitems – 由 base 指向的数组中元素的个数。 
 3. size – 数组中每个元素的大小,以字节为单位。 
 4. compar – 用来比较两个元素的函数

简单说来:qsort(*s, n, sizeof(s[0]), cmp);     参数1,2,3,4:

1.s是一个地址,参与排序的首地址

2.n待排序的数量

3.sizeof(s[0]),每一元素所占空间大小

4.指向函数的指针,确定排序的方式

例如:对长为10的数组排序,int a[10];

qsort(a,10,sizeof(i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值