Pagini recente » Cod sursa (job #2206779) | Cod sursa (job #22269) | Cod sursa (job #2693202) | Cod sursa (job #1564056) | Cod sursa (job #776941)
Cod sursa(job #776941)
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int a[500002] , n , i;
void merge(int lo ,int m , int hi)
{
int b[500002];
int j , k;
for(i=lo; i<=hi; i++) b[i]=a[i];
i=lo; j=m+1; k=lo;
while(i<=m && j<=hi)
if(b[i]<=b[j])
a[k++]=b[i++];
else
a[k++]=b[j++];
while(i<=m) a[k++]=b[i++];
}
void mergesort(int lo ,int hi)
{
if(lo<hi)
{
int m = (lo+hi)/2;
mergesort(lo,m);
mergesort(m+1,hi);
merge(lo,m,hi);
}
}
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;
}