用于执行排序的 C 库函数

标签 c sorting

C标准库中有没有可用的库函数来进行排序?

最佳答案

qsort() 是您正在寻找的函数。您可以使用指向数据数组的指针、该数组中的元素数量、每个元素的大小和比较函数来调用它。

它发挥了它的魔力,你的数组就地排序了。示例如下:

#include <stdio.h>
#include <stdlib.h>
int comp (const void * elem1, const void * elem2) 
{
    int f = *((int*)elem1);
    int s = *((int*)elem2);
    if (f > s) return  1;
    if (f < s) return -1;
    return 0;
}
int main(int argc, char* argv[]) 
{
    int x[] = {4,5,2,3,1,0,9,8,6,7};

    qsort (x, sizeof(x)/sizeof(*x), sizeof(*x), comp);

    for (int i = 0 ; i < 10 ; i++)
        printf ("%d ", x[i]);

    return 0;
}

关于用于执行排序的 C 库函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47488154/

相关文章:

c - 传递结构与将变量传递给 C 中的函数

c - c中的bsearch函数

sorting - 有效地找到极值

python-2.7 - 在 python 中使用合并排序排列给定的整数列表以获得最少的数字

javascript - 如何将数组作为在 Javascript 中添加的项目进行排序?

c - 打印字符串给出字节 C

c - 如何在 vim 中使用大量参数调试/重新格式化 C printf 调用?

c++ - 帮助使用 GetGlyphOutline 函数 (WinAPI)

javascript - 根据与另一个数组的最佳匹配对对象数组进行排序

java - 如何在 Java 的数组中按字母顺序对自定义对象进行排序?