Pagini recente » Cod sursa (job #771510) | Cod sursa (job #2293157) | Cod sursa (job #1530182) | Cod sursa (job #1083948) | Cod sursa (job #796696)
Cod sursa(job #796696)
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
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;
vec.reserve(n);
istream_iterator<int> it_in(fin);
istream_iterator<int> it_end;
copy(it_in, it_end, std::inserter(vec, vec.end()));
merge_sort(vec.begin(), vec.end());
ostream_iterator<int> it_out(fout, " ");
copy(vec.begin(), vec.end(), it_out);
return 0;
}