Cod sursa(job #1265347)

Utilizator IonSebastianIon Sebastian IonSebastian Data 17 noiembrie 2014 10:13:00
Problema Sortare prin comparare Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <iostream>
#include<fstream>
using namespace std;

ifstream in ("algsort.in");
ofstream out ("algsort.out");

int aux[500000];

void ms(int st, int dr, int v[])
{
    int i,j,k;
    int m=(st+dr)/2;
    i = k = st;
    j=m+1;
    while(i<=m&&j<=dr)
    {
        if(v[i] <= v[j])
            aux[k++]=v[i++];
        else aux[k++]=v[j++];
    }
    while(i<=m)
        aux[k++]=v[i++];
    while(j<=dr)
        aux[k++]=v[j++];
    for(i=0;i<=dr;i++)
        v[i]=aux[i];
}
void sortare(int st, int dr, int v[])
{
    if(st==dr) return;
    int m=(st+dr)/2;
    sortare(st,m,v);
    sortare(m+1,dr,v);
    ms(st,dr,v);

}
int main()
{
    int n,i;
    in>>n;
    int v[n];
    for(i=0;i<n;i++)
        in>>v[i];
    sortare(0, n-1 ,v);
    for(i=0;i<n;i++)
        out<<v[i]<<" ";
    return 0;
}