酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

第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]

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