Pagini recente » Cod sursa (job #430301) | Cod sursa (job #2032759) | Cod sursa (job #430368) | Cod sursa (job #1478758) | Cod sursa (job #2939911)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f ("algsort.in");
ofstream g ("algsort.out");
const int NMAX = 5e5;
int v[NMAX+1], aux[NMAX+1];
void interclasare(int st, int dr){
int m = (st+dr)/2;
int i=st, j=m+1, k=st;
while(i<=m and j<=dr){
if(v[i] <= v[j])
aux[k] = v[i], k++, i++;
else aux[k] = v[j], k++, j++;
}
while(i<= m)
aux[k] = v[i], k++, i++;
while(j<=dr)
aux[k] = v[j], k++, j++;
for(int i=st; i<=dr; i++)
v[i] = aux[i];
}
void ms(int st, int dr){
if(st == dr)
return;
int m = (st+dr)/2;
ms(st, m);
ms(m+1, dr);
interclasare(st, dr);
}
int main()
{
int n;
f>>n;
for(int i=1; i<=n; i++)
f>>v[i];
ms(1, n);
for(int i=1; i<=n; i++)
g<<v[i]<<' ';
return 0;
}