Pagini recente » Cod sursa (job #3203482) | Cod sursa (job #2582750) | Cod sursa (job #416805) | Cod sursa (job #2629779) | Cod sursa (job #2850113)
#include<iostream>
//#include<fstream>
using namespace std;
//ifstream fin("algsort.in");
//ofstream fout("algsort.out");
const int N=5e5;
void interclasare(int v[N], int st, int dr);
void ms(int v[N], int st, int dr);
void ms(int v[N], int st, int dr)
{
if(st==dr)return;
int m=(st+dr)/2;
ms(v, st, m);
ms(v, m+1, dr);
interclasare(v, st, dr);
}
void interclasare(int v[N], int st, int dr)
{
int m=(st+dr)/2;
int i=st, j=m+1, k=dr, aux[N];
while(i<=m && j<=dr)
{
if(v[i]<=v[j])
{
aux[k++]=v[i++];
}
else
aux[k++]=v[j++];
}
while(i<=m)
aux[k++]=v[i++];
while(j<=dr)
aux[k++]=v[j++];
for(k=st; k<=dr; k++)
{
v[k]=aux[k];
}
}
int main()
{
int v[N], n;
cin >> n;
for(int i=0; i<=n-1; i++)
{
cin >> v[i];
}
ms(v, 0, n-1);
for(int i=0; i<=n-1; i++)
cout << v[i] << " ";
return 0;
}