Pagini recente » Cod sursa (job #2973139) | Cod sursa (job #1452776) | Cod sursa (job #1265972) | Cod sursa (job #677558) | Cod sursa (job #655027)
Cod sursa(job #655027)
#include <iostream>
#include <fstream>
using namespace std;
int a[500005], N;
void interclasare (int a[500005], int st, int m, int dr)
{
int b[500005];
int i, j, k;
i=0; j=st;
while (j<=m)
b[i++]=a[j++];
i=0; k=st;
while ((k<j)&&(j<=dr))
if (b[i]<=a[j])
a[k++]=b[i++];
else
a[k++]=a[j++];
while (k<j)
a[k++]=b[i++];
}
void mergesort (int a[500005], int st, int dr)
{
if (st<dr)
{int m=(st+dr)/2;
mergesort(a,st,m);
mergesort(a,m+1,dr);
interclasare(a,st,m,dr);}
}
int main()
{
ifstream f("algsort.in");
ofstream g("algsort.out");
f>>N;
for (int p=1; p<=N; ++p)
f>>a[p];
mergesort(a,1,N);
for (int p=1; p<=N; ++p)
g<<a[p]<<" ";
return 0;
}