请给我一份C++代码,包含一个排序功能的函数,这个函数要求输入一个int数组,返回一个被从大到小排序的int数组
时间: 2024-02-26 19:58:52 浏览: 58
好的,以下是一份C++代码,包含一个排序功能的函数,这个函数要求输入一个int数组,返回一个被从大到小排序的int数组:
```c++
#include <iostream>
using namespace std;
void quickSort(int arr[], int left, int right) {
int i = left, j = right;
int tmp;
int pivot = arr[(left + right) / 2];
/* partition */
while (i <= j) {
while (arr[i] > pivot)
i++;
while (arr[j] < pivot)
j--;
if (i <= j) {
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
i++;
j--;
}
};
/* recursion */
if (left < j)
quickSort(arr, left, j);
if (i < right)
quickSort(arr, i, right);
}
int* sortArray(int* nums, int numsSize, int* returnSize) {
quickSort(nums, 0, numsSize - 1);
*returnSize = numsSize;
return nums;
}
int main() {
int arr[] = { 3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5 };
int n = sizeof(arr) / sizeof(arr[0]);
int* sortedArr = sortArray(arr, n, &n);
for (int i = 0; i < n; i++) {
cout << sortedArr[i] << " ";
}
return 0;
}
```
在这个代码中,我们使用了快速排序算法来对输入的int数组进行从大到小排序。sortArray函数接受一个int数组和数组长度numsSize作为输入,返回一个被从大到小排序的int数组,并将数组长度赋值给*returnSize指针。在main函数中,我们测试了这个排序函数,并打印了排序后的结果。
阅读全文