Pagini recente » Cod sursa (job #2474872) | Cod sursa (job #543145) | Cod sursa (job #2103247) | Cod sursa (job #3040897) | Cod sursa (job #1043944)
#include<fstream>
#include<cmath>
#include<limits.h>
#define dim 500100
#define lim 2000000000
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int main () {
unsigned int v[dim],s[6000],p[6000];
unsigned int Lung,l,i,j,minu,n,k;
f>>n;
l=sqrt(n);
for(i=0;i<n;++i)
f>>v[i];
Lung=n/l;
for(i=0;i<=Lung;++i)
s[i]=lim;
for(i=0;i<n;++i){
k=i/l;
if(s[k]>v[i]) {
s[k]=v[i];
p[k]=i;
}
}
for(i=0;i<n;++i) {
minu=lim;
for(j=0;j<=Lung;++j) {
if(minu>s[j]) {
minu=s[j];
k=p[j];
}
}
g<<minu<<" ";
v[k]=lim;
int t=k/l;
s[t]=lim;
for(j=l*t;j<(l)*(t+1) && j<n ;++j) {
if(v[j]<s[t] ) {
p[t]=j;
s[t]=v[j];
}
}
}
return 0;
}