c++选择合理的排序方法对指定整数数据进行升序排序。第一行输入测试数据组数n(0<n<=10)。 以下每组数据占2行,第一行输入排序整数的个数m(m不超过10000的正整数)。 第二行输入m个整数,数据之间由空格分隔。
时间: 2024-03-11 13:48:45 浏览: 63
好的,这是一个关于排序算法的问题。我推荐使用快速排序算法,因为它的时间复杂度为 O(nlogn),并且在实际应用中表现良好。
以下是示例代码:
```C++
#include <iostream>
#include <algorithm>
using namespace std;
void quickSort(int arr[], int left, int right) {
if (left >= right) return;
int i = left, j = right, pivot = arr[left];
while (i < j) {
while (i < j && arr[j] >= pivot) j--;
if (i < j) arr[i++] = arr[j];
while (i < j && arr[i] < pivot) i++;
if (i < j) arr[j--] = arr[i];
}
arr[i] = pivot;
quickSort(arr, left, i - 1);
quickSort(arr, i + 1, right);
}
int main() {
int n;
cin >> n;
while (n--) {
int m;
cin >> m;
int arr[m];
for (int i = 0; i < m; i++) {
cin >> arr[i];
}
quickSort(arr, 0, m - 1);
for (int i = 0; i < m; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
return 0;
}
```
该代码使用了递归的快速排序算法对每组数据进行升序排序。
阅读全文