fork download
  1. //count sort
  2.  
  3. #include<bits/stdc++.h>
  4. using namespace std;
  5.  
  6. int main(){
  7. int n,i;
  8. cin>>n;
  9. int a[n];
  10. for(i=0;i<n;i++)cin>>a[i];
  11. int mx=0;
  12. for(i=0;i<n;i++) mx=max(mx,a[i]);
  13. int count[mx+1];
  14. for(i=0;i<=mx;i++)count[i]=0;
  15.  
  16. for(i=0;i<n;i++){
  17. count[a[i]]++;
  18. }
  19. //sub-array sum
  20. int sum[mx+1];
  21. sum[0]=count[0];
  22. for(i=1;i<=mx;i++){
  23. sum[i]=sum[i-1]+count[i];
  24. }
  25.  
  26. int sorted[n];
  27. for(int i=n-1;i>=0;i--){
  28. sum[a[i]]--;
  29. int idx=sum[a[i]];
  30. sorted[idx]=a[i];
  31. }
  32. for(i=0;i<n;i++){
  33. cout<<sorted[i]<<" ";
  34. }
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5288KB
stdin
4
1 2 5
112 

22 
2

stdout
1 2 5 112