C语言中的快排函数——qsort
阅读原文时间:2023年07月08日阅读:1

函数名

qsort();

头文件

include

功能

对数组内的元素进行默认升序的快速排序

函数声明

void qsort( void *buf, size_t num, size_t size, int (*compare)(const void *, const void *) );

//eg
//以升序为例
int compare(const void* a, const void* b) {
    int* s1 = (int*)a;
    int* s2 = (int*)b;
    return *s1 - *s2;
}

int n = 9;
int arr[n];
//假设数组全部输入了数据
qsort(arr, n, sizeof(int), compare);

buf 是将要排序的数组名,可以是字符数组,整型数组,结构体数组……只要能比较大小就行

num是数组元素的个数

size是单个元素所占的字节数,例如int 是 sizeof(int)

compare 是一个比较大小的函数,返回值为int,需要自己写出来

_int compare(const void a, const void_ b)

_a 和 b 都是void 的变量,属于弱类型,系统并不知道它们指向什么,所以使用的时候应该先强制类型转换为需要的指针类型_*

如果函数compare 的第一个参数小于第二个参数,返回负值;如果等于返回零值;如果大于返回正值。函数对buf 指向的数据按升序排序。

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章