利用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]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)354
- C 语言实现链表操作:创建、输出、删除及插入功能详解(字节豆包 | 534点数解答 | 2024-12-09 21:33:48)347
- C语言实现链表创建、输出、删除与插入操作的完整代码及注意要点(字节豆包 | 609点数解答 | 2024-12-18 12:18:21)368
- 超详细:JDK安装及Windows系统环境变量设置全攻略 (阿里通义 | 376点数解答 | 2024-03-06 17:27:29)361
- C 语言代码:补充函数实现变量值交换及注意要点揭秘(字节豆包 | 174点数解答 | 2024-12-12 00:37:54)168
- C 语言:实现 swap 函数完成两变量交换的代码及逻辑要点(字节豆包 | 121点数解答 | 2024-12-15 19:32:57)210
- 优化高中英语核心词汇短语HTML页面,这些建议不容错过!(DeepSeek | 217点数解答 | 2025-07-01 23:41:02)196
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)327
- 用 JS 中 for 循环实现 1 到 100 相加并输出结果到页面的完整代码 ( | 240点数解答 | 2024-05-20 22:11:29)480
- 用 JS 的 while 循环实现 1 到 100 相加并输出到页面的代码揭秘( | 47点数解答 | 2024-05-20 22:16:48)364
- 用Python轻松将PPT每页转为图片,附代码示例!(阿里通义 | 315点数解答 | 2024-04-23 10:01:04)1370
- Winform开发:含验证与清空功能的注册页面实现(GPT | 5266点数解答 | 2024-06-14 16:04:40)490