1 //简化版的桶排序,时间复杂度为O(2*(m+n))->O(m+n)
2 //处理的问题:随机输入几组数,对这几组数进行自动排序操作(从小到大或从大到小排序)
3 #include <bits/stdc++.h>
4 using namespace std;
5 inline int read()
6 {
7 int x=0,f=1;
8 char ch=getchar();
9 while(ch<'0'||ch>'9')
10 {
11 if(ch=='-')
12 f=-1;
13 ch=getchar();
14 }
15 while(ch>='0'&&ch<='9')
16 {
17 x=x*10+ch-'0';
18 ch=getchar();
19 }
20 return x*f;
21 }
22 inline void write(int x)
23 {
24 if(x<0)
25 {
26 putchar('-');
27 x=-x;
28 }
29 if(x>9)
30 {
31 write(x/10);
32 }
33 putchar(x%10+'0');
34 }
35 int a[11];//储存1~10中某个数出现的次数
36
37
38 int main()
39 {
40 for(int i=1;i<=10;i++)
41 {
42 int x;
43 cin>>x;
44 a[x]++;
45 }
46 //从小到大排序
47 /*
48 for(int i=1;i<=10;i++)
49 {
50 for(int j=1;j<=a[i];j++)//打印1~10中某个数出现的次数,出现几次打印几次
51 {
52 cout<<i<<" ";
53 }
54 }
55 */
56 //从大到小排序
57 for(int i=10;i>=1;i--)
58 {
59 for(int j=1;j<=a[i];j++)
60 {
61 cout<<i<<" ";
62 }
63 }
64 return 0;
65 }