欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

快排函数qsort()

程序员文章站 2022-04-01 17:28:50
...

C语言的标准库里面有qsort()函数,这个函数是通过快速排序,来实现给一个任意类型的数组排序。其需要的参数是:数组头指针,数组长度,每个数组元素所占的字节数,比较函数的指针。通过这些信息来对数组进行快速排序!下面我介绍下是如何实现
首先定义函数接口
void qSort(void*, size_t, size_t, int(*)(const void *, const void *));
我们之所以要定义void指针,是为了接受各种指针,当然也包括动态链表的指针。由这个接口,我们还不能给一个无序的数组排序。还要在这个接口中调用实现快速排序函数。我们知道快速排序是需要两个标量的,一个标定要排序的数组的最低位,一个标定最高位。其定义可以如下:

void qSort(void*, size_t, size_t, size_t, int(*)(const void *, const void *));

如果有相同的元素进行排序的时候,不推荐适用快排,反而推荐比较更加稳定的stable_sort.

相关标签: OJ