从最大到最小 C 语言排序函数393


在 C 语言中,需要对数据进行排序时,最常用的方法是使用 qsort() 函数。该函数使用快速排序算法,是一种基于分而治之原则的高效排序算法。

qsort() 函数原型如下:```c
void qsort(void *base, size_t num, size_t size, int (*compar)(const void *, const void *));
```

下面是一个使用 qsort() 函数从最大到最小排序数组的示例代码:```c
#include
#include
int compare(const void *a, const void *b) {
return *(int *)b - *(int *)a;
}
int main() {
int arr[] = {10, 7, 3, 5, 1, 9};
int n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(int), compare);
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```

以上代码输出:```
10 9 7 5 3 1
```

下面列出使用 qsort() 函数从最大到最小排序的一些其他示例:* 整数数组:
```c
int arr[] = {1, 5, 3, 2, 4};
qsort(arr, 5, sizeof(int), compare);
```
* 字符数组:
```c
char str[] = "Hello";
qsort(str, strlen(str), sizeof(char), compare);
```
* 结构体数组:
```c
struct student {
char name[20];
int age;
};
struct student students[] = {
{"Alice", 20},
{"Bob", 25},
{"Charlie", 30}
};
int compare_students(const void *a, const void *b) {
struct student *sa = (struct student *)a;
struct student *sb = (struct student *)b;
return sb->age - sa->age;
}
qsort(students, 3, sizeof(struct student), compare_students);
```

除了 qsort() 函数,还有其他几种方法可以对数据进行排序,例如冒泡排序、选择排序和归并排序。然而,qsort() 函数通常是速度和效率的最佳选择,尤其是在对大量数据进行排序时。

2025-02-17


上一篇:内联函数:C 语言中的速度优化

下一篇:C语言中主函数的名称探秘