DS排序--简单选择排序 时间限制 1s 内存限制 128MB 题目描述 给出一个数据序列,使用简单选择排序算法进行升序排序。 输入 第一行输入t,表示有t个测试示例 第二行输入n,表示第一个示例有n个数据(n>1) 第三行输入n个数据,都是正整数,数据之间用空格隔开 以此类推 输出 对每组测试数据,输出每趟排序结果。不同组测试数据间用空行分隔。 样例查看模式 正常显示 查看格式 输入样例1 <-复制 2 5 12 58 36 47 96 10 1 3 6 9 0 8 5 7 4 2 输出样例1 12 58 36 47 96 12 36 58 47 96 12 36 47 58 96 12 36 47 58 96 0 3 6 9 1 8 5 7 4 2 0 1 6 9 3 8 5 7 4 2 0 1 2 9 3 8 5 7 4 6 0 1 2 3 9 8 5 7 4 6 0 1 2 3 4 8 5 7 9 6 0 1 2 3 4 5 8 7 9 6 0 1 2 3 4 5 6 7 9 8 0 1 2 3 4 5 6 7 9 8 0 1 2 3 4 5 6 7 8 9
时间: 2023-12-29 14:03:55 浏览: 290
以下是C++的代码实现,使用简单选择排序算法对给定的数据序列进行升序排序,并输出每趟排序结果。
```c++
#include <iostream>
#include <vector>
using namespace std;
// 简单选择排序算法
void selectionSort(vector<int>& nums) {
int n = nums.size();
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (nums[j] < nums[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(nums[i], nums[minIndex]);
}
// 输出当前排序结果
for (int k = 0; k < n; k++) {
cout << nums[k] << " ";
}
cout << endl;
}
}
int main() {
int t;
cin >> t;
while (t--) {
int n;
cin >> n;
vector<int> nums(n);
for (int i = 0; i < n; i++) {
cin >> nums[i];
}
selectionSort(nums);
cout << endl;
}
return 0;
}
```
其中,`selectionSort`函数使用简单选择排序算法实现对给定序列的排序。该算法的时间复杂度为$O(n^2)$,空间复杂度为$O(1)$,其中$n$是序列中元素的个数。
阅读全文