我找不到关于C语言qsort
函数使用的排序算法的任何信息。
它是快速排序吗?在手册中没有提到。
实现qsort
没有具体规定: 实现可以使用任何排序算法。有趣的是,排序不需要稳定,并且没有复杂度要求。
qsort
的整个规范(C11 §7.22.5.2)如下:
qsort
函数概要
#include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
描述
qsort
函数对一个由指向base
的初始元素的数组中的nmemb
个对象进行排序。每个对象的大小由size
指定。根据比较函数升序排列数组内容,该函数由
compar
指针指向,并使用指向要比较的两个对象的两个参数调用。如果第一个参数被认为小于、等于或大于第二个参数,则该函数将返回小于零、等于零或大于零的整数。如果两个元素相等,则它们在排序后的结果数组中的顺序是未指定的。
返回值
qsort
函数没有返回任何值。