c++的sort自定义排序
时间: 2023-09-15 17:23:24 浏览: 102
通过c++的sort函数实现成绩排序功能
你可以使用`sort()`函数来对C中的数组进行排序。如果想要自定义排序规则,你可以使用`qsort()`函数,它允许你传递一个自定义的比较函数作为参数。下面是一个示例:
```c
#include <stdio.h>
#include <stdlib.h>
// 自定义的比较函数
int compare(const void *a, const void *b) {
int num1 = *(int *)a; // 将指针转换为整数,然后取值
int num2 = *(int *)b;
// 自定义的排序规则,这里按照从小到大的顺序排列
if (num1 < num2) {
return -1;
} else if (num1 > num2) {
return 1;
} else {
return 0;
}
}
int main() {
int arr[] = {5, 2, 8, 1, 3};
int size = sizeof(arr) / sizeof(arr[0]);
// 使用自定义的比较函数进行排序
qsort(arr, size, sizeof(arr[0]), compare);
// 打印排序后的结果
printf("排序后的数组:");
for (int i = 0; i < size; i++) {
printf("%d ", arr[i]);
}
return 0;
}
```
运行上述代码,输出将会是:`排序后的数组:1 2 3 5 8`。这里的`compare()`函数通过比较传入的两个元素来确定它们的顺序。根据自己的需求,可以修改`compare()`函数来实现不同的排序规则。
阅读全文