Cod sursa(job #1549477)

Utilizator savigunFeleaga Dragos-George savigun Data 12 decembrie 2015 13:12:33
Problema Sortare prin comparare Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <iostream>
#include <fstream>
using namespace std;

int aux[100000], v[100000];

void interclasare(int i, int n, int j, int m)
{
    int inf=i, sup=m, l=1;
    while(i<=n && j<=m)
        if(v[i]<=v[j])
            aux[l++]=v[i++];
        else
            aux[l++]=v[j++];
    while(i<=n) aux[l++]=v[i++];
    while(j<=m) aux[l++]=v[j++];

    l=1;
    for(i=inf;i<=m;i++)
        v[i]=aux[l++];

}

void msort(int inf, int sup)
{
    if(inf!=sup)
    {
        int m;
        m=(sup+inf)/2;
        msort(inf, m);
        msort(m+1, sup);
        interclasare(inf, m, m+1, sup);
    }
}

int main()
{
ifstream cin("algsort.in");
ofstream cout("algsort.in");
int n, i;
cin>>n;

for(i=1;i<=n;i++)
    cin>>v[i];

msort(1, n);

for(i=1;i<=n;++i)
    cout<<v[i]<<" ";

    return 0;
}