酷代码 AI
菜单
服务商

利用swap函数实现选择排序的C++代码

### 📝思路分析 选择排序的基本思想是每一轮从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待排序的数据元素排完。在本题中,我们需要利用`swap`函数来完成元素的交换。具体做法是,对于每一个位置`i`,我们从`i + 1`到`n`中找到最小的元素,然后与位置`i`的元素交换。 ### 💻代码实现 ```cpp #include <iostream> // 使用标准命名空间 using namespace std; // 定义数组a和变量n int a[105], n; int main() { // 读取需要排序的数字数量 cin >> n; for (int i = 1; i <= n; i++) { // 读取每个数字 cin >> a[i]; } for (int i = 1; i <= n - 1; i++) { // 用swap函数实现互换 for (int j = i + 1; j <= n; j++) { // 如果当前元素a[j]小于a[i],则交换它们的位置 if (a[j] < a[i]) { swap(a[i], a[j]); } } } for (int i = 1; i <= n; i++) { // 输出排序后的数字 cout << a[i] << " "; } return 0; } ``` ### 📌代码解释 1. **输入部分**:首先读取需要排序的数字数量`n`,然后依次读取`n`个数字存放到数组`a`中。 2. **选择排序部分**:外层循环控制当前要确定位置的元素,内层循环从当前位置的下一个元素开始,找到比当前元素小的元素,并交换它们的位置。 3. **输出部分**:最后遍历数组,输出排序后的数字。 ### ⚠️复杂度分析 - **时间复杂度**:$O(n^2)$,其中$n$是需要排序的数字数量。因为使用了两层嵌套循环。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 540点数解答 | 2026-04-11 19:45:13]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]