qsort函数,其声明在stdlib.h文件中,时间复杂度为n*log(n)。
功能:使用快速排序例程进行排序
用法:
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
参数:
- base -- 指向要排序的数组的第一个元素的指针
- nitems -- 由 base 指向的数组中元素的个数
- size -- 数组中每个元素的大小,以字节为单位
- compar -- 用来比较两个元素的函数
也可以理解为:
1. 待排序数组首地址
2. 数组中待排序元素数量
3. 各元素的占用空间大小
4. 指向函数的指针,用于确定排序的顺序
例:
#include <stdio.h>
#include <stdlib.h> //用qsort函数就必须有这个头文件
int cmpfunc (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main()
{
int n,i;
scanf("%d",&n);
int values[n]; //动态数组,这样定义没有错,但在一些编译器上这样用就会报错
for(i=0;i<n;i++){
scanf("%d",&values[i]);
}
printf("排序之前的列表:\n");
for( i = 0 ; i < n; i++ ) {
printf("%d ", values[i]);
}
q