Pagini recente » Cod sursa (job #462253) | Cod sursa (job #34482) | Cod sursa (job #2304470) | Cod sursa (job #2680497) | Cod sursa (job #462223)
Cod sursa(job #462223)
#include <fstream>
using namespace std;
#define MAX 500000
int compare (const void * a, const void * b)
{
return ( *(int*)a - *(int*)b );
}
int C[MAX],y[MAX];
void counting_sort (int A[], int B[], int n, int k)
{
for (int i = 1 ; i <= n; ++i)
C[i] = 0;
for (int j = 1 ; j <= k; ++j)
C[A[j]] = C[A[j]] + 1;
for (int i = 1 ; i <= n; ++i)
C[i] = C[i] + C[i-1];
for (int j = k ; j >= 1; --j){
B[C[A[j]]] = A[j];
C[A[j]] = C[A[j]] - 1;}
}
int main()
{
int n,i,v[MAX];
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>n;
for (i=1;i<=n;i++)
f>>v[i];
counting_sort(v,y,MAX, n);
for (i=1;i<=n;i++)
g<<y[i]<<" ";
f.close();
g.close();
return 0;
}