Pagini recente » Cod sursa (job #2809220) | Cod sursa (job #2199013) | Cod sursa (job #2984295) | Cod sursa (job #66997) | Cod sursa (job #1045916)
#include<fstream>
#include<math.h>
using namespace std;
fstream f("algsort.in",ios::in);
fstream g("algsort.out",ios::out);
int main()
{
long v[100],s[100],p[100],n,i,min,pas,j,pi,aux,pn;
//cin>>n;
f>>n;
pas=sqrt(n);
min=30000;
for (j=1,i=0,pi=0;i<n;i++,j++)
{
//cin>>v[i];
f>>v[i];
if (min > v[i]) min=v[i];
if (j==pas)
{
p[pi] = min;
min = 30000;
pi++;
j=0;
}
}
if (n%pas != 0) pn = pas+1;
else pn = pas;
for (i=0;i<n;i++)
{
min=30000;
for (pi=0;pi<pn;pi++)
if (min > p[pi] && p[pi]!=-200)
{ min=p[pi];
j=pi;
}
s[i]=min;
min=30000;
aux=j*pas;
for (pi=0;pi<pas;pi++)
{
if (v[aux+pi] == s[i]) v[aux+pi] = -200;
else if (min > v[aux+pi] && v[aux+pi] != -200)
min = v[aux+pi];
}
p[j] = min;
}
for (i=0;i<n;i++)
// cout<<s[i]<<" ";
g<<s[i]<<" ";
return 0;
}