Pagini recente » Cod sursa (job #1641168) | Cod sursa (job #41798) | Cod sursa (job #1431838) | Cod sursa (job #2310033) | Cod sursa (job #984537)
Cod sursa(job #984537)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int N,Array[500002],Aux[500002];
void Read()
{
f>>N;
int i;
for(i=1;i<=N;i++)
f>>Array[i];
}
void DEI(int Left,int Right)
{
if(Left==Right)
return;
int Mid=(Left+Right)/2;
DEI(Left,Mid);
DEI(Mid+1,Right);
int i=Left,j=Mid+1,k=0;
while(i<=Mid && j<=Right)
{
if(Array[i]<Array[j])
Aux[++k]=Array[i++];
else
Aux[++k]=Array[j++];
}
if(i<=Mid)
for(;i<=Mid;i++)
Aux[++k]=Array[i];
if(j<=Right)
for(;j<=Right;j++)
Aux[++k]=Array[j];
for(i=1;i<=k;i++)
Array[i+Left-1]=Aux[i];
}
void Print()
{
int i;
for(i=1;i<=N;i++)
g<<Array[i]<<" ";
g<<"\n";
}
int main()
{
Read();
DEI(1,N);
Print();
return 0;
}