Pagini recente » Cod sursa (job #679117) | Cod sursa (job #569468) | Cod sursa (job #689659) | Cod sursa (job #401934) | Cod sursa (job #2850120)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");
const int N=5e5;
int v[N], aux[N];
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=st, 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;
fin >> n;
for(int i=0; i<=n-1; i++)
{
fin >> v[i];
}
ms(v, 0, n-1);
for(int i=0; i<=n-1; i++)
fout << v[i] << " ";
return 0;
}