本题要求将给定的n个整数从大到小排序后输出。
时间: 2023-09-05 08:13:29 浏览: 55
您可以使用任何一种排序算法来解决这个问题,比如冒泡排序、插入排序、选择排序、快速排序、归并排序等等。以下是其中一种快速排序的实现方法:
```
#include <iostream>
using namespace std;
// 交换两个元素
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
// 快速排序
void quickSort(int arr[], int left, int right) {
if (left >= right) return;
int i = left, j = right;
int pivot = arr[left];
while (i < j) {
while (i < j && arr[j] <= pivot) j--;
arr[i] = arr[j];
while (i < j && arr[i] >= pivot) i++;
arr[j] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
quickSort(arr, 0, n - 1);
for (int i = n - 1; i >= 0; i--) {
cout << arr[i] << " ";
}
return 0;
}
```
在这个代码中,我们使用了快速排序算法来对数组进行排序。快速排序的思想是选择一个基准元素,将小于等于它的元素放到它的左边,大于它的元素放到它的右边,然后递归地处理左右两个子数组。由于快速排序的时间复杂度为O(nlogn),因此在大多数情况下,快速排序是非常高效的排序算法。