Cod sursa(job #796689)

Utilizator claudiumihailClaudiu Mihail claudiumihail Data 12 octombrie 2012 09:37:40
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

template <class Iter>
void merge_sort(Iter first, Iter last)
{
    if (last - first > 1)
    {
        Iter median = first + (last - first)/2;

        merge_sort(first, median);
        merge_sort(median, last);
        
        inplace_merge(first, median, last);
    }
}

int main()
{
    int n;
    vector<int> vec;
    fstream fin("algsort.in", fstream::in);
    fstream fout("algsort.out", fstream::out);
    
    fin >> n;
    //cout << n << endl;
    
    vec.resize(n);
    
    for (int i=0; i<n; ++i)
    {
        fin >> vec[i];
        //cout << vec[i] << " ";
    }
    //cout << endl;
    
    merge_sort(vec.begin(), vec.end());
    
    for (int i=0; i<n; ++i)
    {
        fout << vec[i] << " ";
    }
    //cout << endl;
    
    return 0;
}