c++中sort函数转换成c语言
时间: 2024-03-10 18:40:22 浏览: 90
900509,c语言sort函数源码,c语言
C++中的sort函数是STL库中的函数,而C语言中没有STL库,因此不能直接使用sort函数。不过,C语言中有一个qsort函数可以实现类似的功能。qsort函数的使用方法如下:
```c
void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
```
其中,base是待排序数组的首地址,nmemb是数组中元素的个数,size是每个元素的大小,compar是比较函数的指针,用于指定排序规则。比较函数的定义如下:
```c
int compar(const void *a, const void *b);
```
比较函数需要返回一个整数值,表示a和b的大小关系。如果a小于b,返回负数;如果a等于b,返回0;如果a大于b,返回正数。
下面是一个使用qsort函数对整型数组进行排序的例子:
```c
#include <stdio.h>
#include <stdlib.h>
int compar(const void *a, const void *b) {
return *(int *)a - *(int *)b;
}
int main() {
int a[10] = {9, 6, 3, 8, 5, 2, 7, 4, 1, 0};
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
printf("\n");
qsort(a, 10, sizeof(int), compar);
for (int i = 0; i < 10; i++) {
printf("%d ", a[i]);
}
return 0;
}
```
输出结果为:
```
9 6 3 8 5 2 7 4 1 0
0 1 2 3 4 5 6 7 8 9
```
阅读全文