阅读量:2
在C语言中,sort函数用于对数组进行排序。它的使用方法如下:
引入头文件:
#include <stdlib.h>
。定义比较函数:sort函数需要一个用于比较数组元素的函数作为参数。比较函数的定义如下:
int compare(const void *a, const void *b) { // 指针类型转换 const int *num1 = (const int *)a; const int *num2 = (const int *)b; // 比较并返回结果 if (*num1 < *num2) { return -1; } else if (*num1 > *num2) { return 1; } else { return 0; } }
比较函数返回值为负数表示a应放在b之前,返回值为正数表示a应放在b之后,返回值为0表示a和b相等。
- 调用sort函数进行排序:
qsort(array, arraySize, sizeof(int), compare);
。 其中,array是要排序的数组的指针,arraySize是数组中元素的个数,sizeof(int)是数组中每个元素的大小,compare是比较函数的指针。
完整的示例代码如下:
#include <stdio.h> #include <stdlib.h> int compare(const void *a, const void *b) { const int *num1 = (const int *)a; const int *num2 = (const int *)b; if (*num1 < *num2) { return -1; } else if (*num1 > *num2) { return 1; } else { return 0; } } int main() { int array[] = {5, 2, 8, 1, 9}; int arraySize = sizeof(array) / sizeof(array[0]); qsort(array, arraySize, sizeof(int), compare); for (int i = 0; i < arraySize; i++) { printf("%d ", array[i]); } printf("\n"); return 0; }
输出结果为:1 2 5 8 9,表示数组已经按照从小到大的顺序排序。