qsort-快速排序函数,头文件stdlib.h
首先上面是qsort函数的定义,括号里面4个又长又臭的名字是使用qsort函数时需传入的参数。
void* _Base是我们要比较的数组中的起始位置
size_t _NumOfElements是要比较的起始位置往后的元素个数
size_t _SizeOfElements是传入类型的字节大小
_CoreCrtNonSecureSearchSortCompareFunction _CompareFunction
是传入一个用来比较的函数的地址,而这个函数需要我们自己实现
我举个例子来理解下:
我要用qsort来排序i数组的元素
代码:
int com(void const* E1, void const* E2)// 需要我们自己实现的用来比较的函数
{
int* e1 = (int*)E1; //因为E1和E2是空类型的指针,所以我们需要强制转化为int类型,
int* e2 = (int*)E2; //我们作为qsort函数的使用者是知道我们要比较的元素类型的;
if (*e1 > *e2)
{
return 1;
}
else if (*e1 < *e2) //返回的值是被要求的,这样的实现的结果是升序,如果想要降序,
{ //就将e1和e2的位置互换就能实现降序;
return