Cod sursa(job #3001900)

Utilizator RaducusCaracas Radu Nicolae Raducus Data 14 martie 2023 01:14:37
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("algsort.in");
ofstream out("algsort.out");
int partitie(int v[], int st, int dr){
    
    int pivot=v[dr];//de schimbat
    
    //partitionare in functie de pivot
    int j=dr-1;
    int i=st;
    while(i<=j){
    if (v[i]<=pivot) i++;
    else if (v[j]>=pivot) j--;
    else {
        swap(v[i],v[j]);
        i++;
        j--;
    }
    }
    swap(v[i],v[dr]);
  
    return i;
}
void recur(int v[], int st, int dr)
{
    if (st<dr){
        int index_pivot=partitie(v,st,dr);
        recur(v,st,index_pivot-1);
        recur(v,index_pivot+1,dr);
    }

}
void quicksort(int v[], int N){
    recur(v,0,N-1);

}
int main(){
    int v[5000],n;
    in>>n;
    for (int i = 0; i < n; i++)
    {
        in>>v[i];
    }
    quicksort(v,n);
    for (int i = 0; i < n; i++)
    {
        out<<v[i]<<" ";
    }

}