Pagini recente » Cod sursa (job #1213461) | Cod sursa (job #2445402) | Cod sursa (job #1635353) | Cod sursa (job #1776369) | Cod sursa (job #657884)
Cod sursa(job #657884)
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
const int N=500001;
int P=8233;
int cont[N+10],poz[N+10];
int v[N],final[N],n;
void insert(int x){
int hash,pozitie,val;
val=v[x];
hash=(v[x]/P);
pozitie=poz[hash];
poz[hash]++;
final[poz[hash]]=v[x];
while(final[pozitie]>v[x]){
final[pozitie+1]=final[pozitie];
pozitie--;
}
final[pozitie+1]=v[x];
}
int main(){
int i,high=0;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
if(high<v[i])
high=v[i];
}
P=high/N+1;
for(i=1;i<=n;++i){
cont[(v[i]/P)]++;
}
for(i=1;i<525000;++i){
poz[i]=cont[i-1]+poz[i-1];
}
for(i=1;i<=n;++i){
insert(i);
}
for(i=1;i<=n;++i){
out<<final[i]<<" ";
}
return 0;
}