Cod sursa(job #1320537)

Utilizator YusukeFMI Mares Medar Razvan Yusuke Data 18 ianuarie 2015 01:28:01
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
//Mares Medar Razvan - Grupa 141
// Merge sort
#include <fstream>
using namespace std;
int n,i,a[500005];
ifstream f("algsort.in");
ofstream g("algsort.out");
void mergesort(int a[],int st,int m,int dr){
    int b[500005];
    int i,j,k;
    i=0;
    j=st;
    while(j<=m)
    b[i++]=a[j++];
    i=0;
    k=st;
    while(k<j&&j<=dr)
        if(b[i]<=a[j])
            a[k++]=b[i++];
    else
        a[k++]=a[j++];
    while(k<j)
    a[k++]=b[i++];
}
void merge(int a[],int st,int dr){
    if(st<dr){
        int m=(st+dr)/2;
        merge(a,st,m);
        merge(a,m+1,dr);
        mergesort(a,st,m,dr);
    }
}
int main(){
    f>>n;
    for(i=1;i<=n;i++)
        f>>a[i];
    merge(a,1,n);
    for(i=1;i<=n;i++)
        g<<a[i]<<" ";
}