C stdlib qsort() 函数
示例
对数组进行排序:
// 比较函数:
// 如果 a 大于 b,则返回正数
// 如果 a 小于 b,则返回负数
// 如果 a 等于 b,则返回 0
int compare(const void *a, const void *b) {
int *valA = a;
int *valB = b;
return *valA - *valB;
}
int main() {
// 创建一个数组
int myArray[] = {20, 32, 5, 2, 24, 15};
int size = sizeof(myArray) / sizeof(myArray[0]);
// 对数组中的值进行排序
qsort (myArray, size, sizeof(myArray[0]), compare);
// 显示数组的值
for(int i = 0; i < size; i++) {
printf("%d ", myArray[i]);
}
return 0;
}
亲自试一试 »
定义和用法
qsort() 函数将数组中的元素按从小到大的顺序排序。
qsort() 函数定义在 <stdlib.h> 头文件中。
语法
qsort(void * arr, size_t amount, size_t size, compare);
size_t 数据类型为非负整数。
参数值
| 参数 | 描述 |
|---|---|
| arr | 必需。指定要排序的数组。 |
| amount | 必需。指定数组中元素的数量。 |
| size | 必需。指定数组元素的大小,以字节为单位。 |
| compare | 必需。指定一个用于比较数组中成对元素以确定哪个元素更大的函数。
该函数应具有以下结构:`int myFunction(const void * a, const void * b)`,其中参数 `a` 和 `b` 是指向被比较数组中元素的指针。如果 a 大于 b,则该函数应返回一个正数;如果 a 小于 b,则该函数应返回一个负数;如果 a 和 b 相等,则该函数应返回零。 |

