C标准库qsort函数
时间: 2023-12-11 21:28:22 浏览: 146
qsort函数是C标准库中的一个排序函数,它使用快速排序算法进行排序。该函数的声明如下:void qsort(void * base, size_t nmemb, size_t size, int(*compar)(const void *, const void *))。其中,base是待排序数组的起始地址,nmemb是待排序数组中元素的个数,size是每个元素的大小,compar是比较函数的地址。比较函数的作用是判断两个元素的大小关系,并返回一个整数值,用于指示元素的相对顺序。如果返回值小于0,则表示第一个元素小于第二个元素;如果返回值等于0,则表示两个元素相等;如果返回值大于0,则表示第一个元素大于第二个元素。
使用qsort函数进行排序时,需要自己编写一个比较函数。比较函数的参数是两个指向待比较元素的指针,函数返回值的含义如上所述。在比较函数中,需要将参数指针转换为合适的类型,并根据实际需求进行元素的比较。
以下是一个对int数组进行排序的示例代码:
#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a, const void *b){
return *(int *)a - *(int *)b; //升序
// return *(int *)b - *(int *)a; //降序
}
int main() {
int n, s[10000];
scanf("%d", &n);
for(int i=0; i<n; i++)
scanf("%d", &s[i]);
qsort(s, n, sizeof(s), cmp);
for(int i=0; i<n; i++)
printf("%d ", s[i]);
return 0;
}
阅读全文