Pagini recente » Cod sursa (job #268897) | Cod sursa (job #2750912) | Cod sursa (job #851893) | Cod sursa (job #1214472) | Cod sursa (job #1165134)
#include <fstream>
using namespace std;
const int MAX = 505505;
int N;
int V[MAX], Aux[MAX];
void Citire() {
ifstream in("algsort.in");
in >> N;
for(int i = 1; i <= N; i++) {
in >> V[i];
} in.close();
}
void Afisare() {
ofstream out("algsort.out");
for(int i = 1; i <= N; i++) {
out << V[i] << " ";
} out.close();
}
void Sort(int L, int R) {
if(L >= R)
return;
int M = (L + R) >> 1;
Sort(L, M);
Sort(M + 1, R);
for(int i = L, j = M + 1, poz = L; i <= M || j <= R; ) {
if(i > M)
Aux[poz++] = V[j++];
else if(j > R)
Aux[poz++] = V[i++];
else if(V[i] < V[j])
Aux[poz++] = V[i++];
else Aux[poz++] = V[j++];
}
for(int i = L; i <= R; i++)
V[i] = Aux[i];
}
int main() {
Citire();
Sort(1, N);
Afisare();
}