Run ID:113286
提交时间:2025-03-15 16:34:19
#include <iostream> #include <vector> using namespace std; // 选择排序并打印每一趟的结果 void selectionSortAndPrint(vector<int>& arr) { int n = arr.size(); for (int i = 0; i < n - 1; ++i) { // 外层循环控制排序的轮数 int minIndex = i; // 假设当前轮次的最小值索引为i for (int j = i + 1; j < n; ++j) { // 内层循环在未排序部分查找最小值 if (arr[j] < arr[minIndex]) { minIndex = j; // 更新最小值索引 } } // 将找到的最小值与未排序部分的第一个元素交换 if (minIndex != i) { swap(arr[i], arr[minIndex]); } // 打印当前轮次排序后的数组 for (int k = 0; k < n; ++k) { cout << arr[k]; if (k < n - 1) { cout << " "; // 数字之间用空格隔开 } } cout << endl; } } int main() { int N; cin >> N; // 输入整数个数 vector<int> arr(N); for (int i = 0; i < N; ++i) { cin >> arr[i]; // 输入N个整数 } selectionSortAndPrint(arr); // 调用选择排序并打印每一趟的结果 return 0; }