问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列。1<=n<=200 输入格式 第一行为一个整数n。 第二行包含n个整数,为待排序的数,每个整数的绝对值小于10000
时间: 2023-09-09 12:10:32 浏览: 112
输入一个任意长度的数组,再对数组排序程序
4星 · 用户满意度95%
回答:这是一个经典的排序问题,可以使用快速排序、归并排序等多种算法。以下是使用快速排序算法的示例代码:
```
#include <iostream>
#include <vector>
using namespace std;
int partition(vector<int>& nums, int left, int right) {
int pivot = nums[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (nums[j] <= pivot) {
i++;
swap(nums[i], nums[j]);
}
}
swap(nums[i+1], nums[right]);
return i+1;
}
void quickSort(vector<int>& nums, int left, int right) {
if (left < right) {
int pi = partition(nums, left, right);
quickSort(nums, left, pi-1);
quickSort(nums, pi+1, right);
}
}
int main() {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
quickSort(nums, 0, n-1);
for (int i = 0; i < n; i++) {
cout << nums[i] << " ";
}
cout << endl;
return 0;
}
```
当然这只是其中一种解法,还有其他的排序算法可供选择。
阅读全文