Pagini recente » Cod sursa (job #2700972) | Cod sursa (job #3039364) | Cod sursa (job #1600514) | Cod sursa (job #1979183) | Cod sursa (job #1754798)
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <algorithm>
#include <unordered_map>
using namespace std;
#define nmax 500003
ifstream in("algsort.in");
ofstream out("algsort.out");
void numsort(int *A,int n)
{
int max_el = *max_element(A,A+n);
int B[nmax];
unordered_map<int,int>C;
for(int i = 0 ; i <= max_el; i ++)
C[i] = 0;
for(int i = 0 ; i < n ; i++)
C[A[i]]++;
for(int i =1 ; i<= max_el; i++)
C[i] = C[i-1]+C[i];
for(int i = 0 ; i < n ; i++)
{
B[C[A[i]]-1] = A[i];
C[A[i]]--;
}
for(int i = 0 ; i< n ; i++)
A[i] = B[i];
}
int main()
{
int n,i;
in >> n;
int v[n+5];
for( i = 0 ; i < n ; i++)
in >> v[i];
numsort(v,n);
//LDS_byte_radixsort(v,n);
for(int i = 0 ; i < n ; i ++)
out << v[i] << " ";
return 0;
}