C语言qsort函数升序降序
时间: 2024-12-25 22:14:20 浏览: 2
CObList sort desc asc 排序 仿qsort 升序 降序
4星 · 用户满意度95%
`qsort()` 是 C 语言标准库中的一个排序函数,它用于对数组元素进行原地、快速的排序。这个函数通常接受四个参数:
1. `void *array` - 待排序的数组的首地址。
2. `size_t num_items` - 需要排序的元素个数。
3. `size_t size_per_item` - 每个元素的大小(字节)。
4. `int compare(const void *, const void *)` - 自定义比较函数,决定元素间的顺序。
如果你想实现升序排列,`compare` 函数应该返回一个负值、零或正值,分别表示第一个元素小于、等于或大于第二个元素。例如,下面是一个简单的升序排序示例:
```c
int compare_asc(const void *a, const void *b) {
return (*(const int*)a - *(const int*)b);
}
```
对于降序排列,只需将比较函数稍作修改,让较大的数返回正值,如:
```c
int compare_desc(const void *a, const void *b) {
return (*(const int*)b - *(const int*)a);
}
```
在实际使用时,你需要先定义好比较函数,然后调用 `qsort`,比如:
```c
qsort(array, num_items, sizeof(int), compare_asc); // 升序
qsort(array, num_items, sizeof(int), compare_desc); // 降序
```
阅读全文