第k小元素求解——C++排序实现
这是一个经典的求第k小元素的问题。这里 n < 100,可以使用排序后直接取第 k 个元素的方法,简单高效。 ## 🧩 问题分析 题目要求从给定的 n 个数中找出第 k 小的数。例如样例中数字为 3,4,5,2,6,排序后是 2,3,4,5,6,第 2 小的数是 3。 ## 💡 解决方案 最简单的做法是:将 n 个数排序,然后输出排序后数组中下标为 k-1 的元素。因为数组下标从 0 开始。 ## 📝 代码实现(C++) ```cpp #include <iostream> #include <algorithm> using namespace std; int main() { int n, k; cin >> n >> k; int arr[n]; for (int i = 0; i < n; i++) { cin >> arr[i]; } // 对数组进行排序 sort(arr, arr + n); // 输出第k小的数(下标为k-1) cout << arr[k - 1] << endl; return 0; } ``` ## 🔍 关键注释 - `sort(arr, arr + n)` 对数组进行升序排序。 - `arr[k-1]` 因为数组下标从 0 开始,第 1 小的数在 arr[0],所以第 k 小在 arr[k-1]。 - 注意题目保证 k ≤ n,不会出现越界情况。 ## ⚠️ 注意事项 - 输入数据范围:n < 100,每个数 ≤ 10000,用 int 类型足够。 - 如果 n 很大(比如 10^6),就不能用全排序,而应该用快速选择算法或堆,但本题范围很小,全排序即可。 ######[AI问答 | 419点数解答 | 2026-07-11 16:29:08]
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)518
- 51 单片机:定时器 0 实现 8 个 LED 循环点亮,附代码及优化建议(字节豆包 | 1193点数解答 | 2024-12-27 15:10:29)438
- jQuery 实现动态操作 DOM:打造可增删任务的待办事项列表应用(百度文心 | 1015点数解答 | 2024-10-26 23:41:22)485
- jQuery 打造实用待办事项列表:输入添加、点击删除一步到位!(阿里通义 | 1139点数解答 | 2024-10-29 08:44:48)405
- jQuery 实现动态操作 DOM:打造带添加与删除功能的待办事项列表应用(阿里通义 | 687点数解答 | 2024-10-29 09:25:06)417
- C语言实现多班级学生信息管理系统:含增删改查与多样排序功能(GPT | 2547点数解答 | 2024-12-15 22:08:58)408
- C语言实现学生信息管理系统:含增删改查与多种排序功能(GPT | 6408点数解答 | 2024-12-15 22:10:03)403
- sys_module 表结构与 Java 实体类 SysModule 详解(字节豆包 | 252点数解答 | 2025-04-09 10:54:17)234
- MySQL表与Java类:`sys_role` 的创建及实体类定义全解析(字节豆包 | 168点数解答 | 2025-04-10 14:39:47)246
- C++ 破解“国王游戏”弱化版:贪心排序算法巧求最少最大奖赏(DeepSeek | 550点数解答 | 2025-04-28 18:16:50)457
- 巧妙贪心排序:解决国王游戏中大臣奖赏最大化问题(DeepSeek | 1002点数解答 | 2025-05-10 20:58:15)220
- C++ 实现:用贪心算法解国王游戏(弱化版),使大臣获赏最大值最小(DeepSeek | 507点数解答 | 2025-05-10 20:59:01)205