c语言怎么调用sort函数排序

avatar
作者
猴君
阅读量:1

在C语言中,可以使用stdlib.h头文件中的qsort函数来进行排序操作。

qsort函数的原型如下:

void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *)); 
  • base:指向要排序的数组的首元素的指针。

  • nmemb:数组中元素的个数。

  • size:每个元素的大小。

  • compar:比较函数的指针,用于指定元素之间的比较规则。

比较函数的原型如下:

int compar(const void *a, const void *b); 
  • a和b:指向要进行比较的两个元素的指针。

  • 返回值:

  • 如果a小于b,返回一个负整数。

  • 如果a等于b,返回0。

  • 如果a大于b,返回一个正整数。

例如,对一个整型数组进行升序排序的示例代码如下:

#include <stdio.h> #include <stdlib.h> int cmp(const void *a, const void *b) { return (*(int*)a - *(int*)b); } int main() { int arr[] = {5, 2, 8, 1, 9}; int n = sizeof(arr) / sizeof(arr[0]); qsort(arr, n, sizeof(int), cmp); printf("排序后的数组:"); for (int i = 0; i < n; i++) { printf("%d ", arr[i]); } return 0; } 

运行结果:

排序后的数组:1 2 5 8 9 

以上代码示例中,使用了一个自定义的比较函数cmp来指定元素之间的比较规则,该函数通过将两个指针转换为对应的整型指针,并通过解引用操作来获取元素的值进行比较。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!