Cod sursa(job #1567511)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 13 ianuarie 2016 13:44:24
Problema Sortare prin comparare Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
#include <algorithm>
#include <cassert>

#define MaxN 5000000

using namespace std;

int v[MaxN];

int main() {
   freopen("algsort.in", "r", stdin);
   freopen("algsort.out", "w", stdout);
   int N;

   scanf("%d", &N);
   for (int i = 0; i < N; i++) {
      scanf("%d", &v[i]);
   }
   fclose(stdin);

   for (int step = 1; step < N; step <<= 1) {
      for (int i = 0; i + step < N; i += (step << 1)) {
         inplace_merge(v + i, v + i + step, v + min(i + 2 * step, N));
      }
   }

   for (int i = 0; i < N; i++) {
      printf("%d ", v[i]);
   }
   fclose(stdout);
   return 0;
}