void qsort (void* base, size_t num, size_t size,
int (*compar)(const void*,const void*));
对数组的元素进行排序
对数组的 num 元素进行排序,每个元素的大小为字节长,使用比较函数确定顺序。此函数使用的排序算法通过将指定的 compar 函数与指向它们的指针作为参数来比较元素对。
该函数不返回任何值,但修改数组所指向的内容,方法是根据 compar 定义对其元素进行基本重新排序。
base为起始地址,num为元素个数,size为元素占字节大小,compar是用来排序的函数,参数为const void*。
define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int com_int(const void* e1, const void* e2)
{
return *(int*)e1 - *(int*)e2;
}
void test()
{
int arr[] = { 5,6,9,8,2,1,7,3,0,4 };
int sz = sizeof(arr) / sizeof(arr[0]);
qsort(arr, sz, sizeof(arr[0]), com_int);
for (int i = 0; i < sz; i++)
{
printf("%d", arr[i]);
}
}
int main()
{
test();
}
如以上程序,首先编写比较函数com_int设置排序方法,返回值的设置由元素相减而来,因而排序结果为升序。
然后再test函数里设置数组,并调用qsort函数,并打印结果。