Pagini recente » Cod sursa (job #1079471) | 29_iulie | Cod sursa (job #2061542) | Borderou de evaluare (job #1173670) | Cod sursa (job #2615335)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("algsort.in");
ofstream g("algsort.out");
int v[900000], t[900000], n;
void MergeSort(int v[], int st, int dr)
{
if(st<dr)
{
int m = (st+dr)/2;
MergeSort(v,st,m);
MergeSort(v,m+1,dr);
//Interclasare:
int i = st, j = m+1, k = 0;
while (i <= m && j<= dr)
if(v[i] < v[j])
t[++k] = v[i++];
else
t[++k] = v[j++];
while(i <= m)
t[++k] = v[i++];
while(j <= dr)
t[++k] = v[j++];
for(i = st, j=1; i<=dr; i++, j++)
v[i] = t[j];
}
}
int main()
{
f>>n;
for(int i = 1; i<= n; i++)
f>>v[i];
MergeSort(v,1,n);
for(int i = 1; i<= n; i++)
g<<v[i]<<" ";
return 0;
}