本题是一个标准的桶排(详见桶排序详解 )
#include<stdio.h> #include<iostream> using namespace std; int n; int tmp; bool ton[100005];//桶 int maxn;//算法优化:记录最大值,输出时就不需要穷举10^5次了 int main(){ scanf("%d",&n); while(n --){ scanf("%d",&tmp); ton[tmp] = true;//桶排 maxn = max(maxn,tmp); } for(int i = 1;i <= maxn;i ++)//输出 if(ton[i]) printf("%d ",i); }