Cod sursa(job #659127)

Utilizator sternvladStern Vlad sternvlad Data 10 ianuarie 2012 05:34:15
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>


using namespace std;
const int N=5000000;

ifstream in ("algsort.in");
ofstream out ("algsort.out");

void radixsort(int *a,int n)
{
		int i,b[N],m=0,exp=1;
		for(i=0;i<n;i++)
		{
			if(a[i]>m)
				m=a[i];
		}

		while(m/exp>0)
		{
			int bucket[10]={0};
			for(i=0;i<n;i++)
				bucket[a[i]/exp%10]++;
			for(i=1;i<10;i++)
				bucket[i]+=bucket[i-1];
			for(i=n-1;i>=0;i--)
				b[--bucket[a[i]/exp%10]]=a[i];
			for(i=0;i<n;i++)
				a[i]=b[i];
			exp*=10;
        }
}



int main()
{
           int arr[N];
           int i,n;
           in>>n;
           for(i=0;i<n;i++)
				in>>arr[i];
           radixsort(&arr[0],n);
           for(i=0;i<n;i++)
				out<<arr[i]<<" ";
           return 0;
}