Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
113283 | 彭士宝 | 选择排序 | C++ | Accepted | 6 MS | 280 KB | 1151 | 2025-03-15 16:32:24 |
#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; // 假设当前轮次的最小值索引为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 N; cin >> N; // 输入整数个数 vector<int> arr(N); for (int i = 0; i < N; ++i) { cin >> arr[i]; // 输入N个整数 } selectionSort(arr); // 调用选择排序函数 // 输出排序后的数组 for (int i = 0; i < N; ++i) { cout << arr[i]; if (i < N - 1) { cout << " "; // 数字之间用空格隔开 } } cout << endl; return 0; }