Nu aveti permisiuni pentru a descarca fisierul grader_test5.ok

Cod sursa(job #1010656)

Utilizator vlad.florescu94FMI Florescu Vlad - Adrian vlad.florescu94 Data 15 octombrie 2013 13:16:01
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include<fstream>
using namespace std;

long v[500001], b[500001];
void interclaseaza(long v[],long st,long m,long dr)
{long nr=0,i,j;
 i=st;j=m+1;
 while(i<=m&&j<=dr)
   {if(v[i]<v[j])
       {b[++nr]=v[i];i++;}
    else
        {b[++nr]=v[j];j++;}
   }
 while(i<=m)
 {b[++nr]=v[i];i++;}
 while(j<=dr)
 {b[++nr]=v[j];j++;}
 j = 1;
 for(i=st;i<=dr;i++, j++)
    v[i]=b[j];
}
void marge(long v[],long st,long dr)
{long m;
 if (st == dr)
    return;
    m=(st+dr)/2;
    marge(v,st,m);
    marge(v,m+1,dr);
    interclaseaza(v,st,m,dr);

}
int main()
{long n, i;
 ifstream f("algsort.in");
 ofstream g("algsort.out");
 f>>n;
 for(i=1;i<=n;i++)
    f>>v[i];
 marge(v,1,n);
 for(i=1;i<=n;i++)
    g<<v[i]<<" ";
 f.close();g.close();
 return 0;
}