A18858. 数组排序
填空题
中等
知识点
题目描述
数组排序
题目描述
给定一组范围在1~50的无序整数,利用桶计数(计数排序)原理,实现数组升序排序并输出,禁止使用sort函数。
输入格式
第一行输入整数n(1≤n≤200),第二行输入n个1~50的整数。
输出格式:一行输出排序后的所有元素,元素之间用空格分隔。
示例输入
6
12 5 33 5 12 40示例输出
5 5 12 12 33 40参考答案
#include <iostream>
using namespace std;
int main() {
int n;
int bucket[51] = {0}; // 数值范围1~50
cin >> n;
// 统计每个数字出现次数
for (int i = 0; i < n; i++) {
int num;
cin >> num;
bucket[num]++;
}
// 遍历桶数组,有序输出所有元素
for (int i = 1; i <= 50; i++) {
for (int j = 0; j < bucket[i]; j++) {
cout << i << " ";
}
}
return 0;
}
上一题
下一题