Pagini recente » Cod sursa (job #2492869) | Cod sursa (job #1079348) | Cod sursa (job #52495) | Cod sursa (job #1769873) | Cod sursa (job #870127)
Cod sursa(job #870127)
#include<fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int n,i,j,k,q,a[500001],b[500001];
void interclasare(int st,int dr)
{
int m=(st+dr)/2;
i=st;
j=m+1;
k=st;
while (i<=m && j<=dr)
if (a[i]<a[j])
{
b[k]=a[i];
k++;
i++;
}
else
{
b[k]=a[j];
k++;
j++;
}
for (q=i;q<=m;q++)
{
b[k]=a[q];
k++;
}
for (q=j;q<=dr;q++)
{
b[k]=a[q];
k++;
}
for (i=st;i<=dr;i++)
a[i]=b[i];
}
void mergesort(int st,int dr)
{
int m=(st+dr)/2;
if (dr-st>1)
{
mergesort(st,m);
mergesort(m+1,dr);
}
interclasare(st,dr);
}
int main()
{
in>>n;
for (i=1;i<=n;i++)
in>>a[i];
mergesort(1,n);
for (i=1;i<=n;i++)
out<<a[i]<<' ';
}