Cod sursa(job #3139376)

Utilizator thinkphpAdrian Statescu thinkphp Data 27 iunie 2023 18:57:39
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <bits/stdc++.h>
#define FIN "algsort.in"
#define FOUT "algsort.out"

using namespace std;

int n, arr[500005];

int partition(int lo, int hi) {

    int j = lo - 1;
    int pivot = arr[hi];
    for(int i = lo; i <= hi; ++i) {
        if(arr[i]<=pivot) {
          j++;
          int temp = arr[j];
          arr[j]=arr[i];
          arr[i] = temp;
        }
    }

    return j;
}

void quicksort(int lo, int hi) {
     int piv = partition(lo, hi);
     if(lo<piv-1) quicksort(lo, piv-1);
     if(piv+1<hi) quicksort(piv+1,hi);
}


int main(int argc, char const *argv[]) {

  ifstream fin(FIN); 
  ofstream fout(FOUT;
  
  fin>>n;
  
  for(int i = 0; i < n; ++i) fin>>arr[i];
  
  quicksort(0, n-1);

  for(int i = 0; i < n; ++i) fout<<arr[i]<<" ";

  return 0;
}