在C语言中,`qsort` 是标准库函数之一,用于对数组进行快速排序。它定义在 `
下面是一个使用 `qsort` 对整数数组进行排序的实例:
#include <stdio.h>
#include <stdlib.h>
// 比较函数,用于qsort
int compare(const void *a, const void *b) {
// 强制类型转换,因为void指针不能直接解引用
int arg1 = *(const int*)a;
int arg2 = *(const int*)b;
// 升序排序
if (arg1 < arg2) return -1;
if (arg1 > arg2) return 1;
return 0;
}
int main() {
int values[] = {40, 10, 100, 90, 20, 25};
int n = sizeof(values)/sizeof(values[0]);
qsort(values, n, sizeof(int), compare);
printf("Sorted array: \n");
for(int i = 0; i < n; i++) {
printf("%d ", values[i]);
}
printf("\n");
return 0;
}
在这个例子中,`compare` 函数是用来比较两个整数元素。`qsort` 函数接受四个参数:要排序的数组、数组中元素的数量、每个元素的大小(使用 `sizeof(int)` 表示整型的大小),以及比较函数 `compare` 的地址。排序完成后,数组 `values` 中的元素将按照升序排列。
请注意,`qsort` 是一个高度优化的排序算法,适用于各种类型的数据排序,只要你能提供合适的比较函数。