Pagini recente » Cod sursa (job #291155) | Cod sursa (job #2867280) | Cod sursa (job #355492) | Cod sursa (job #2775781) | Cod sursa (job #2938281)
#include <fstream>
#include<vector>
#include <algorithm>
#import <cmath>
#import <cassert>
namespace std
{
vector<int>interclass(vector<int>a,vector<int>b)
{
int n=a.size(),m=b.size();
int an=0,am=0;
vector<int>rez;
while(an<n && am<m)
{
if(a[an]<b[am])
{
rez.push_back(a[an++]);
}
else
{
rez.push_back(b[am++]);
}
}
while(an<n)
{
rez.push_back(a[an++]);
}
while(am<m)
{
rez.push_back(b[am++]);
}
return rez;
}
vector<int>add_iterator(vector<int>::iterator it1,vector<int>::iterator it2)
{
vector<int>rez;
while(it1!=it2)
{
rez.push_back(*it1);
it1++;
}
return rez;
}
vector<int> sort(vector<int>a)
{
if(a.size()==1)return a;
int m=(int)a.size()/2;
return interclass(sort(add_iterator(a.begin(),a.begin()+m)) , sort( add_iterator(a.begin()+m,a.end()) ) );
}
}
using namespace std;
int main()
{
ifstream cin("algsort.in");
ofstream cout("algsort.out");
int n;
cin>>n;
vector<int>a(n);
for(auto &c:a)cin>>c;
a=sort(a);
for(auto &c:a)
{
cout<<c<<' ';
}
}