Cod sursa(job #1217452)

Utilizator MaarcellKurt Godel Maarcell Data 7 august 2014 14:07:21
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
using namespace std;

int N, a[500100], b[500100];

void merge_sort(int l, int r){
    if (l == r) return;

    int mid=(l+r)/2;
    merge_sort(l,mid);
    merge_sort(mid+1,r);

    int ind=l-1,i=l,j=mid+1;
    while (i<=mid && j<=r)
        if (a[i]<a[j])
            b[++ind]=a[i++];
        else
            b[++ind]=a[j++];

    for (; i<=mid; i++)
        b[++ind]=a[i];
    for (; j<=r; j++)
        b[++ind]=a[j];

    for (i=l; i<=r; i++)
        a[i]=b[i];
}
int main(){
    ifstream in("algsort.in");
    ofstream out("algsort.out");
    in >> N;

    int i;
    for (i=1; i<=N; i++)
        in >> a[i];

    merge_sort(1,N);

    for (i=1; i<=N; i++)
        out << a[i] << " ";

    return 0;
}