Cod sursa(job #3198268)

Utilizator TrifoitaBejenescu-Babusanu Stefan Trifoita Data 28 ianuarie 2024 17:18:31
Problema Sortare prin comparare Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("algsort.in");
ofstream fout("algsort.out");

int vec[500001];

void _quick(long long lo, long long hi) {

           long long piv = vec[ ( lo + hi ) >> 1 ],

               i = lo,

               j = hi;

               while( i <= j ) {

                    while( vec[ i ] < piv) i++;
                    while( vec[ j ] > piv) j--;

                    if( i <= j ) {

                        swap(vec[i], vec[j]);

                        i++; j--;
                    }
               }

               if(lo < j) _quick(lo, j);
               if(hi > i) _quick(i, hi);

      }

int main() {
  long long n; fin >> n;
  for (long long i = 0; i < n; i++)
    fin >> vec[i];
  _quick(0, n-1);
  for (long long i = 0; i < n; i++)
    fout << vec[i] << " ";
  return 0;
}