Cod sursa(job #1008720)

Utilizator jul123Iulia Duta jul123 Data 11 octombrie 2013 18:18:26
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.1 kb
#include<iostream>
#include<fstream>
using namespace std;
int n, v[500000], c[500000];

void mergee(int left, int right, int m)
{
    int a=left, b=m, d=m+1, e=right,k=0,i;
    while(a<=b && d<=e)
        if(v[a]<v[d])
        {
            c[k++]=v[a];
            a++;
        }
        else
           {
            c[k++]=v[d];
            d++;
           }
    while(a<=b)
        {
            c[k++]=v[a];
            a++;
        }
    while(d<=e)
        {
            c[k++]=v[d];
            d++;
           }
    for(i=left;i<=right;i++)
        v[i]=c[i-left];

}
void merge_sort(int left, int right)
{
    int m;
    if(left<right)
       {
           m=(left+right)/2;
           merge_sort(left,m);
           merge_sort(m+1,right);
           mergee(left, right, m);


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