Pagini recente » Cod sursa (job #236850) | Cod sursa (job #386850) | Cod sursa (job #299766) | Cod sursa (job #1125331) | Cod sursa (job #1005949)
#include<iostream>
#include<fstream>
unsigned long long i,n,a[500000],c[500000];
void merges(unsigned st, unsigned dr)
{
if (st == dr)return;
unsigned m = (st + dr) / 2;
merges(st, m, k);
merges(m + 1, dr, k);
unsigned j = st, z = m + 1, s = 0;
while (j <= m || z <= dr)
{
if (j > m){ c[s++] = a[z++]; continue; }
if (z > dr){ c[s++] = a[j++]; continue; }
if (a[j] > a[z])c[s++] = a[z++];
else c[s++] = a[j++];
}
for (j = st, z = 0; z < s; z++, j++)a[j] = c[z];
}
int main()
{
std::ifstream f("algsort.in");
f >> n;
for ( i = 0; i < n; i++)f >> a[i];
f.close();
merges(0, n - 1);
std::ofstream g("algsort.out");
for (i = 0; i < n; i++)g << a[i] << " ";
g.close();
}