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

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]

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