Pagini recente » Cod sursa (job #1252167) | Cod sursa (job #8969) | Clasament porumbelulalb | Cod sursa (job #1892712) | Cod sursa (job #2901390)
#include <iostream>
#include <fstream>
#include <bits/stdc++.h>
using namespace std;
ifstream is("algsort.in");
ofstream os("algsort.out");
int v[500005];
int n,x;
int v1[250005];
void mergeV( int l, int m, int r){
int iv1=l, iv2=m+1, iv=l;
while(iv1<=m && iv2<=r){
if(v[iv1]<v[iv2]){
v1[iv] = v[iv1];
iv++;
iv1++;
}
else
{
v1[iv]=v[iv2];
iv2++;
iv++;
}
}
while(iv1<=m){
v1[iv] = v[iv1];
iv1++;
iv++;
}
while(iv2<=r){
v1[iv] = v[iv2];
iv2++;
iv++;
}
for(int j=l; j<=r;j++){
v[j] = v1[j];
}
}
void mergeSort(int l, int r){
if(l>=r)
return;
int m = (l+r)/2;
mergeSort(l,m);
mergeSort(m+1,r);
mergeV( l, m ,r);
}
int main()
{
is>>n;
for(int i=1; i<=n;i++)
{
is>>v[i];
}
//sort(v.begin(), v.end(), comp);
mergeSort(1,n);
for(int i =1; i<=n; i++)
os<<v[i]<<" ";
return 0;
}