Cod sursa(job #2027755)

Utilizator alexandruilieAlex Ilie alexandruilie Data 26 septembrie 2017 17:57:59
Problema Sortare prin comparare Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <fstream>

using namespace std;
int x[100],n,c[100];
ifstream f("algsort.in");
ofstream g("algsort.out");
void interclas(int st,int mij,int dr)
{
    int a=st,b=mij+1,i,k=0;
    while(a<=mij&&b<=dr)
    {
        if(x[a]<x[b]) {c[++k]=x[a];a++;}
        else {c[++k]=x[b];b++;}
    }
    while(a<=mij) c[++k]=x[a],a++;
    while(b<=dr) c[++k]=x[b],b++;
    for(i=st;i<=dr;i++) x[i]=c[i-st+1];
}
void sort(int st,int dr)
{
    if(st!=dr)
    {
    int mij=(st+dr)/2;
    sort(st,mij);
    sort(mij+1,dr);
    interclas(st,mij,dr);
    }
}

int main()
{
    f>>n;
    for(int i=1; i<=n; i++) f>>x[i];
    sort(1,n);
    for(int i=1; i<=n; i++) g<<x[i]<<' ';
    return 0;
}