Pagini recente » Cod sursa (job #658369) | Cod sursa (job #312906) | Cod sursa (job #1933635) | Cod sursa (job #965977) | Cod sursa (job #2055314)
#include <bits/stdc++.h>
#define NRMARE INT_MAX
using namespace std;
vector<int> v;deque<int> l[10];int n,Mini,Min[1000];
ifstream f("algsort.in");
ofstream g("algsort.out");
void smen_batog()
{
double radical=sqrt(n);Mini=NRMARE;int i,j,k;
for(i=0;i<radical;++i)
{
Min[i]=NRMARE;
for(j=i*radical;j<=(i+1)*radical-1;++j)
if(Min[i]>v[j])
{
Min[i]=v[j];
if(Mini>Min[i]){Mini=Min[i];k=i;}
}
}
while(n)
{
g<<Mini<<' ';Min[k]=NRMARE;int ok=1;
for(i=k*radical;i<=(k+1)*radical-1;++i)
{if(Mini==v[i] && ok) {v[i]=NRMARE;ok=0;}
if(Min[k]>v[i]) Min[k]=v[i];}
Mini=NRMARE;
for(i=0;i<radical;++i) if(Mini>Min[i]) Mini=Min[i],k=i;
n--;
}
}
int main()
{
int i;
f>>n;v.resize(n);
for(i=0;i<n;++i)
f>>v[i];
smen_batog();
return 0;
}