优化选择排序实现从大到小排序
以下是使用 Python 实现的优化后的选择排序,将输入的 `n` 个数从大到小排序: ```python # 读取输入 n = int(input()) numbers = list(map(int, input().split())) # 优化后的选择排序 for i in range(n): max_index = i for j in range(i + 1, n): if numbers[j] > numbers[max_index]: max_index = j if max_index != i: numbers[i], numbers[max_index] = numbers[max_index], numbers[i] # 输出排序后的结果 print(" ".join(map(str, numbers))) ``` ### 代码解释: 1. **输入部分**:首先读取一个整数 `n`,表示输入数字的数量。然后读取一行整数,使用 `split()` 方法将其分割成列表,并使用 `map()` 函数将每个元素转换为整数。 2. **优化后的选择排序**: - 外层循环 `for i in range(n)` 控制排序的轮数,每一轮确定一个最大的数。 - 内层循环 `for j in range(i + 1, n)` 用于在未排序的部分中找到最大的数的索引 `max_index`。 - 如果 `max_index` 不等于当前的 `i`,说明找到了更大的数,交换 `numbers[i]` 和 `numbers[max_index]` 的位置。 3. **输出部分**:使用 `join()` 方法将排序后的列表中的元素转换为字符串,并用空格连接起来,然后输出。 ### 复杂度分析: - **时间复杂度**:选择排序的时间复杂度始终为 $O(n^2)$,无论输入数据的初始状态如何。 - **空间复杂度**:$O(1)$,只使用了常数级的额外空间。 ######[AI问答 | 425点数解答 | 2026-04-11 19:30:03]
- 超详细:JDK安装及Windows系统环境变量设置全攻略 (阿里通义 | 376点数解答 | 2024-03-06 17:27:29)361
- 解析React 15与Vue 2:从O(n^3)到O(n),Diff算法时间复杂度计算及性能对比 (阿里通义 | 379点数解答 | 2023-11-09 01:49:19)343
- 缜密逻辑,全新无名杀“风餐”技能代码精心打造与深度解析 (字节豆包 | 469点数解答 | 2025-04-05 11:37:06)250
- 精准优化:明确需求,开启高效提升之旅! (字节豆包 | 52点数解答 | 2026-02-09 16:44:46)48
- 代码再升级:优化版“获取dump”代码,多机制保障数据读取与保存(字节豆包 | 734点数解答 | 2026-02-10 01:23:31)72
- 代码深度优化:全面检查异常、灵活读取内存,提升可读性与可维护性(字节豆包 | 959点数解答 | 2026-02-10 01:24:14)41
- 2 秒动画搞定!“好句子”如何稳停结束位置( | 456点数解答 | 2024-05-19 16:46:15)278
- PHP实训:从0到1搭建电商平台,收获技能与成长!(讯飞星火 | 674点数解答 | 2024-06-17 08:58:32)356
- PHP实训:搭建电商平台的实战之旅与收获反思 (讯飞星火 | 623点数解答 | 2024-06-17 08:59:26)343
- PHP 实训:从零打造电子商务平台,解锁开发全流程!(GPT | 1439点数解答 | 2024-06-17 09:00:18)301
- PHP实训:搭建电子商务平台全流程揭秘与收获(GPT | 1868点数解答 | 2024-06-17 09:02:00)293
- C++ 求解:最少操作次数让字符串无子串 “friend” (字节豆包 | 153点数解答 | 2024-08-17 16:29:54)485