【C语言库函数】-qsort

  qsort 函数 C 语言编译器函数库自带的排序函数,其时间复杂度为 O(nlog n)。qsort 函数包含在 C 标准库 <stdlib.h> 中。


一、函数声明

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

二、参数

  • base     :指向要排序的数组的第一个元素的指针。

  • nitems  :由 base 指向的数组中元素的个数。

  • size      :数组中每个元素的大小,以字节为单位。

  • compar :用来比较两个元素的函数,即函数指针(回调函数)

三、回调函数

  回调函数就是通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,就说这是回调函数。

  在 qsort 函数中,compar 参数指向一个比较两个元素的函数。注意两个形参必须是 const void * 型,在调用compar 函数时,传入的实参也必须转换成 const void * 型。在 compar 函数内部将 const void * 型转换成实际类型。

  compar 函数的声明如下:

1 int compar(const void *p1, const void *p2);

  compar 函数的逻辑如下:

Compare 函数的返回值
描述
< 0
elem1将被排在elem2前面
0
elem1 等于 elem2
> 0
elem1 将被排在elem2后面

  

原文地址:https://www.cnblogs.com/murongmochen/p/13054896.html