C语言标准库中提供了一个快递排序函数——qsort()。qsort()采用快速排序算法,几乎能实现C语言范围内的一切类型排序。
void qsort(void *base, size_t nmemb, size_t size, int(*compar)(const void *, const void *));
qsort()函数需要提供待排序数组地址、数组元素个数、每个元素大小以及一个函数指针。
qsort()在执行过程中会调用函数指针指向的函数,得到大小的评判标准,进行排序。
该函数指针的类型为int(*compar)(const void*, const void*)。有关类型处理的工作,都交由该函数指针指向的函数来处理,qsrort()只负责排序。函数参数为void*,任何类型可以方便地转为void*,做为参数传递进来。qsort()这种行为,有一点类似C++中的泛型。