C++选择排序,要求选择排序排大小

题目描述
给你一个序列,按照从小到大的顺序重新排列,要求使用选择排序
输入
第一行是一个正整数m,代表测试样例的个数
对于每组测试样例,输入一行数字,第一个数字m,代表这组样例中数字的个数,接下来的m个数字代表所给序列
输出
对于每组输出样例,输出一行,输出按照从小到大顺序排列的结果
样例输入
3
2
2 1
5
9 5 1 4 3
6
2 3 8 1 5 6
样例输出
1 2
1 3 4 5 9
1 2 3 5 6 8

引用chatGPT作答,以下是C++的选择排序实现,可以用于解决这个问题:

#include <iostream>
#include <vector>

using namespace std;

void selectionSort(vector<int>& arr) {
    int n = arr.size();
    for (int i = 0; i < n-1; i++) {
        int minIndex = i;
        for (int j = i+1; j < n; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        if (minIndex != i) {
            swap(arr[i], arr[minIndex]);
        }
    }
}

int main() {
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        vector<int> arr(n);
        for (int i = 0; i < n; i++) {
            cin >> arr[i];
        }
        selectionSort(arr);
        for (int i = 0; i < n; i++) {
            cout << arr[i] << " ";
        }
        cout << endl;
    }
    return 0;
}

对于每个测试样例,我们首先输入数字个数n和n个数字,然后使用选择排序对数字进行排序,最后输出排好序的数字。

已经做出来了