qsort函数
概要:
#include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
描述:
该函数对数组元素排序。参数base指向排序数组的初始元素,参数nmemb指定排序数组的元素数目,参数size指定单个数组元素的大小,参数compar指向比较函数,该比较函数比较两个对象的大小;该比较函数会被qsort函数反复调用,用以比较数组元素;数组元素根据参数compar指向的比较函数按升序排序。
参数compar指向比较函数的函数原型如下所示:
int (*compar)(const void *x, const void *y);
如果参数x指向对象分别小于、等于或者大于参数y指向对象,比较函数返回一个小于、等于或者大于0的整数。qsort函数根据比较函数的返回值对数组元素进行排序,具体规则如下所示:
返回值 | 含义 |
大于0 | 参数x指向的元素将排在参数y指向的元素之后。 |
小于0 | 参数x指向的元素将排在参数y指向的元素之前。 |
等于0 | 参数x指向的元素与参数y指向的元素相等。 |
如果两个元素相等,它们在结果排序数组中的顺序ISO/IEC 9899:2018标准未作明确说明。
ISO/IEC 9899:2018标准定义了该函数的安全版本qsort_s。
参数:
void *base
指向排序数组初始元素的指针。
size_t nmemb
数组的元素数目。
size_t size
以字节形式表示的单个数组元素的大小。
int (*compar)(const void *, const void *)
指向比较函数的指针。
返回值:
无。
范例:
|
|
输出:
-5 0 3 10 25
相关内容:
bsearch | 搜索匹配的数组元素的函数。 |