C++实现计数排序解决数字排序问题
以下是使用 C++ 实现计数排序来解决此问题的代码: ```cpp #include <iostream> #include <vector> using namespace std; int main() { // 读取要排序的数字数量 int n; cin >> n; // 定义计数数组,范围是 1 到 5000,所以数组大小为 5001 vector<int> count(5001, 0); // 读取每个数字并进行计数 for (int i = 0; i < n; ++i) { int m; cin >> m; // 对应位置计数加 1 count[m]++; } // 输出排序后的数字 bool first = true; for (int i = 1; i <= 5000; ++i) { for (int j = 0; j < count[i]; ++j) { if (!first) { cout << " "; } // 输出数字 cout << i; first = false; } } cout << endl; return 0; } ``` ### 代码解释: 1. **读取输入**:首先读取要排序的数字数量 `n`,然后使用一个大小为 5001 的向量 `count` 来记录每个数字出现的次数。 2. **计数**:循环 `n` 次,读取每个数字 `m`,并将 `count[m]` 的值加 1,表示数字 `m` 出现了一次。 3. **输出排序结果**:遍历计数数组 `count`,对于每个计数大于 0 的位置,输出该位置对应的数字,并且确保相邻数字间用空格分隔。 ######[AI问答 | 421点数解答 | 2026-06-21 16:59:29]
- C++ 实现:精准统计给定范围 [L, R] 内数字 2 出现的次数及代码详解(字节豆包 | 401点数解答 | 2026-02-05 21:17:05)93
- C++实现:统计[L, R]范围内数字2出现的次数及代码详解(字节豆包 | 489点数解答 | 2026-02-07 17:12:26)108
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)474
- C3期末:精准求解 3 - 20 范围内数列第 k 项值及注意要点(字节豆包 | 242点数解答 | 2025-06-15 11:26:19)181
- C++求解:查找3 - 20项数列第k项值及注意要点(字节豆包 | 325点数解答 | 2025-06-15 11:27:11)207
- Python:用正则表达式从含多种字符的字符串中提取英文、数字和中文单词(GPT | 522点数解答 | 2024-05-31 19:05:27)359
- Python:用正则表达式结合 split 思路提取一行字符串中的英文、数字和中文单词 (GPT | 399点数解答 | 2024-05-31 19:07:31)362
- 繁体字编码代码修改:人物名字合法性验证函数转简体版(字节豆包 | 325点数解答 | 2024-10-21 18:57:01)333
- 计算区间 n 到 m 中数字 x 出现次数的 Python 实现与详解(字节豆包 | 289点数解答 | 2025-12-07 17:14:59)130
- Python 实现:计算区间 n 到 m 中数字 x 出现的次数(字节豆包 | 322点数解答 | 2025-12-13 21:37:08)126
- Python实现数字是否为3的倍数判断及输出(字节豆包 | 508点数解答 | 2026-05-31 14:10:46)38
- C++实现数字倍数判断及输出(字节豆包 | 741点数解答 | 2026-05-31 14:11:48)26