Cod sursa(job #462223)

Utilizator SpiderManSimoiu Robert SpiderMan Data 9 iunie 2010 23:43:12
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#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;
}