void qsort(void *base, size_t num, size_t size, int (*compar)(const vo">

c语言怎么用数组排序

来源:这里教程网 时间:2026-02-21 16:51:28 作者:

C语言数组排序

排序是什么?

排序是一种将数据按特定顺序排列的过程,例如从小到大或从大到小排列。

C语言中如何使用数组排序?

立即学习“C语言免费学习笔记(深入)”;

在C语言中,可以使用

qsort()
函数对数组进行排序。该函数原型如下:

<code class="c">void qsort(void *base, size_t num, size_t size, int (*compar)(const void*, const void*));</code>
base:待排序数组的首地址 num:数组中元素的数量 size:每个元素的大小(以字节为单位) compar:比较函数,用于比较两个元素并返回比较结果

比较函数

为了使用

qsort()
,需要提供一个比较函数。该函数接收两个元素的指针,并返回一个整数,表示两个元素之间的比较结果:

负值:第一个元素小于第二个元素 零:两个元素相等 正值:第一个元素大于第二个元素

示例代码

以下示例演示了如何使用

qsort()
对整数数组进行排序:

<code class="c">#include <stdio.h>
#include <stdlib.h>
int int_compare(const void *a, const void *b) {
    int *pa = (int*)a;
    int *pb = (int*)b;
    return *pa - *pb;
}
int main() {
    int arr[] = {3, 1, 4, 2, 5};
    int n = sizeof(arr) / sizeof(arr[0]);
    qsort(arr, n, sizeof(int), int_compare);
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    return 0;
}</code>

输出:

<code>1 2 3 4 5</code>

相关推荐