Pagini recente » Cod sursa (job #2145926) | Cod sursa (job #2165745) | Cod sursa (job #277124) | Cod sursa (job #2532682) | Cod sursa (job #1319014)
#include <iostream>
#include<fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500001],b[500001];
int n,i,j,k,q;
void merge_sort(int stg,int m,int drt)
{ i=stg;k=i;
j=m+1;
while(i<=m && j<=drt)
{if(a[i]<a[j])
{b[k]=a[i];
i++;}
else {b[k]=a[j];
j++;}
k++;}
if(i>m)
for(q=j;q<=drt;q++)
{
b[k]=a[q];
k++;
}
else for(q=i;q<=m;q++)
{
b[k]=a[q];
k++;
}
for(i=stg;i<=drt;i++)
a[i]=b[i];
}
void mergesort(int stg,int drt)
{
int m;
if(stg<drt)
{
m=(stg+drt)/2;
mergesort(stg,m);
mergesort(m+1,drt);
merge_sort(stg,m,drt);
}
}
int main()
{ f>>n;
for(i=1;i<=n;i++)
f>>a[i];
mergesort(1,n);
for(i=1;i<=n;i++)
g<<a[i]<<" ";
return 0;
}