Pagini recente » Cod sursa (job #2967210) | Cod sursa (job #949424) | Cod sursa (job #709348) | Cod sursa (job #2842730) | Cod sursa (job #1732855)
#include <fstream>
#define Nmax 1005
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[Nmax], b[Nmax];
void merge(int l, int r)
{
if (r>l)
{
merge(l, (l+r)/2);
merge((r+l)/2+1,r);
int p=l,q=(l+r)/2+1, z=l;
while (p<=(l+r)/2 && q<=r)
{
if(a[p]<a[q])
{
b[z]=a[p];
z++;
p++;
}
else
{
b[z]=a[q];
z++;
q++;
}
}
while(p<=(l+r)/2)
{
b[z]=a[p];
z++;
p++;
}
while(q<=r)
{
b[z]=a[q];
z++;
q++;
}
for(int i=l; i<=r; i++)
a[i]=b[i];
}
}
int n;
int main()
{
f>>n;
for(int i=1; i<=n; i++)
f>>a[i];
merge(1,n);
for(int i=1; i<=n; i++)
g<<a[i]<<" ";
}