Pagini recente » Cod sursa (job #1854617) | Cod sursa (job #1724527) | Cod sursa (job #2840539) | Cod sursa (job #770226) | Cod sursa (job #1310222)
#include <fstream>
using namespace std;
int n, v[500100], newv[500100];
inline void Merge(int st, int dr)
{
if(st >= dr)
return;
int mij = (st + dr) / 2;
Merge(st, mij);
Merge(mij + 1, dr);
int i, j, k;
i = st;
j = mij + 1;
k = st;
while(i <= mij && j <= dr)
{
if(v[i] < v[j])
{
newv[k++] = v[i];
i++;
}
else
{
newv[k++] = v[j];
j++;
}
}
while(i <= mij)
{
newv[k++] = v[i];
i++;
}
while(j <= dr)
{
newv[k++] = v[j];
j++;
}
for(i = st; i <= dr; ++i)
v[i] = newv[i];
}
int main()
{
int i;
ifstream fin("algsort.in");
fin >> n;
for(i = 1; i <= n; ++i)
fin >> v[i];
fin.close();
Merge(1, n);
ofstream fout("algsort.out");
for(i = 1; i <= n; ++i)
fout << v[i] << ' ';
fout << endl;
fout.close();
return 0;
}