Cod sursa(job #1033861)

Utilizator jul123Iulia Duta jul123 Data 17 noiembrie 2013 15:56:19
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.9 kb
#include<iostream>
#include<fstream>
#include<cmath>
#define MAXIM 2147483647;
using namespace std;
int v[500000], m[500000], nn[500000];
int main()
{
    int i, n, l, k, j, min, imin, t, p;
    ifstream f("algsort.in");
    ofstream g("algsort.out");

    f >> n;
    k = sqrt( n);
    l = n / k;
    for(i =  0; i < n ; i ++)
        f >> v[i];
    for(i=0; i<k; i++)
        m[i]=MAXIM;
    for(i=0;i<n;i++)
        if(v[i]<m[i/l])
            {m[i/l] = v[i];
            nn[i/l] = i;
            }
    for(j = 0; j < n; j ++)
    {
    min = MAXIM;
    for(i = 0; i < k; i ++)
        if(m[i] < min)
            {
                min = m[i];
                imin = nn[i];
            }
    g<<min<<" ";
    v[imin] = MAXIM;
    t = imin / l;
    m[t]=MAXIM-1;
    for(p = t * l; p < ( t + 1) * l; p ++)
            if(v[p] < m[t])
                {m[t] = v[p]; nn[t]=p;}

}
}