C++ sort排序
时间: 2023-11-14 21:24:15 浏览: 77
C语言中的sort函数是用来对数组进行排序的函数。它是标准库函数,位于头文件<stdlib.h>中。
sort函数的原型如下:
```c
void sort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));
```
其中,参数说明如下:
- base:指向要排序的数组的第一个元素的指针。
- nmemb:要排序的元素个数。
- size:每个元素的大小(以字节为单位)。
- compar:用来比较两个元素的函数指针。
比较函数的原型如下:
```c
int cmpfunc(const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
```
其中,参数说明如下:
- a:指向第一个要比较的元素的指针。
- b:指向第二个要比较的元素的指针。
比较函数必须返回一个整数值,表示两个元素之间的大小关系。如果返回值小于0,则表示第一个元素应该排在第二个元素之前;如果返回值大于0,则表示第一个元素应该排在第二个元素之后;如果返回值等于0,则表示两个元素相等,它们的相对位置不变。
例如,下面的代码演示了如何使用sort函数对一个整型数组进行排序:
```c
#include <stdio.h>
#include <stdlib.h>
int cmpfunc(const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int main ()
{
int arr[] = {10, 5, 8, 1, 7};
int n = sizeof(arr)/sizeof(arr[0]);
int i;
printf("Before sorting:\n");
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
// 使用sort函数对数组进行排序
qsort(arr, n, sizeof(int), cmpfunc);
printf("\nAfter sorting:\n");
for(i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
输出结果为:
```
Before sorting:
10 5 8 1 7
After sorting:
1 5 7 8 10
```
阅读全文