今天碰到C语言库函数qsort,自己却不知道,感觉白学了
需要头文件
#include<stdlib.h>
函数用法
qsort(nums,numsSize,sizeof(int),cmp)
//nums数组首地址,numsSize数组长度,类型int
其中cmp
int cmp(const void* _a,const void* _b)
{
return *(int*)_a-*(int*)_b;//从小到大,强制类型转换
//return *(int*)_b-*(int*)_a;//从大到小
}
完整程序
#include<stdio.h>
#include<stdlib.h>
int cmp(const void* _a, const void* _b)
{
return *(int*)_a - *(int*)_b;//从小到大
}
void sort(int* nums, int numsSize)
{
qsort(nums, numsSize, sizeof(int), cmp);
}
int main()
{
int a[] = { 5,4,6,9,10,2,1 };
sort(a, 7);
for (int i = 0; i < 7; i++)
printf("%d ", a[i]);
}
控制台输出:[1 2 4 5 6 9 10]
时间复杂度:O(nlogn)
空间复杂度:O(logn)