测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

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; }
上一题 下一题