Pagini recente » Cod sursa (job #1837285) | Cod sursa (job #1811340) | Cod sursa (job #395536) | Cod sursa (job #2561143) | Cod sursa (job #2509667)
#include <bits/stdc++.h>
#define pb push_back
#define optimize ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
#define ll long long
#define FILEIN "algsort.in"
#define FILEOUT "algsort.out"
using namespace std;
ifstream fin(FILEIN);
ofstream fout(FILEOUT);
void citire();
int v[500001],sol[500001],n;
void rez();
void mergesort(int ,int );
void afis();
int main()
{
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
mergesort(1,n);
for(int i=1;i<=n;i++)
fout<<v[i]<<" ";
}
void mergesort(int st,int dr)
{
if(dr-st<=1)
{
if(v[st]>v[dr]) swap(v[st],v[dr]);
}
else
{
int mij=(dr+st)/2;
mergesort(st,mij);
mergesort(mij+1,dr);
int k=st,i=st,j=mij+1;
while(i<=mij && j<=dr)
{
if(v[i]>v[j])
sol[k++]=v[j++];
else
sol[k++]=v[i++];
}
while(i<=mij)
sol[k++]=v[i++];
while(j<=dr)
sol[k++]=v[j++];
for(int i=st;i<=dr;i++)
v[i]=sol[i];
}
}