Cod sursa(job #330804)

Utilizator AnDrEwBoYA Andrei AnDrEwBoY Data 11 iulie 2009 16:16:51
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<iostream>

#define MAX_V 1000000
using namespace std;

int* sort(int a[],int n)
{
    int i,c[MAX_V];
    int *b = new int[500000];
    
    for(i = 0; i < MAX_V; i++) c[i] = 0;  
    for(i = 0; i < n; i++)
      c[a[i]]++;
    for(i = 1; i < MAX_V; i++)
      c[i] += c[i-1]; 
    

    for(i = n-1; i >= 0; i--)
    {
       b[c[a[i]]] = a[i];
       c[a[i]]--;
    }  
    return b;
}

int main()
{
    freopen("algsort.in","r",stdin);
    freopen("algsort.out","w",stdout);
    int n ;
    int * a = new int[500000];
    scanf("%d",&n);
    for(int i = 0; i < n; i++)
      scanf("%d",&a[i]);
      
    a = sort(a,n);
    for(int i = 1; i <= n; i++)
      cout<<a[i]<<" ";
      
    return 0;
}