Pagini recente » Cod sursa (job #876420) | Cod sursa (job #2895169) | Cod sursa (job #985391) | Cod sursa (job #2947806) | Cod sursa (job #1011616)
//radix sort
#include<fstream>
#include<cstring>
#define dim 500008
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int b[dim],Sor[dim],C[dim];
int cnt,Max,k,put,n,i;
int main () {
f>>n;
for(i=1;i<=n;++i){
f>>b[i];
if(b[i]>Max)
Max=b[i];
}
while(Max){
++cnt;
Max/=10;
}
put=1;
for(k=1;k<=cnt;++k) {
memset(C,0,sizeof(C));
for(i=1;i<=n;++i){
C[b[i]/put%10]++;
}
for(i=1;i<=9;++i){
C[i]+=C[i-1];
}
for(i=n;i;--i) {
Sor[C[b[i]/put%10]--]=b[i];
}
for(i=1;i<=n;++i){
b[i]=Sor[i];
}
put*=10;
}
for(i=1;i<=n;++i)
g<<Sor[i]<<" ";
return 0;
}