qsort介绍
qsort是c语言库函数提供的快排函数,在标准库<stdlib.h>中
- 函数原型:
void qsort(void *base, size_t nitems, size_t size, int (*compar)(const void *, const void*))
- 参数:
base:参与排序的数组的指针
nitems:数组元素的个数
size:数组中每个元素的大小
compar比较函数。
- compar比较函数
compar比较函数的返回值<=0(两个参数不进行置换),>0(两个参数进行置换)
// 函数返回值>0时,参数a和b交换
int compare(const void *a, const void *b)
{
return *(int*)a - *(int*)b;
}
举例
#include <stdio.h>
#include <stdlib.h>
int compare(const void * a, const void * b)
{
return *(int*)a - *(int*)b;
}
int main()
{
int nums[5] = {5,3,8,10,26};
printf("排序前:\n");
for(int i = 0 ; i < 5; i++) {
printf("%d ", nums[i]);
}
qsort(nums, 5, sizeof(int), compare);
printf("\n排序后:\n");
for(int i = 0; i < 5; i++) {
printf("%d ", nums[i]);
}
return 0;
}
运行结果:
排序前:
5 3 8 10 26
排序后:
3 5 8 10 26