Cod sursa(job #2984139)

Utilizator skphaMincu Adrian skpha Data 23 februarie 2023 17:15:29
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.89 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream f("algsort.in");
ofstream g("algsort.out");

int n,v[500001],temp[500001];

void quicksort(int st,int dr)
{
    if(st<dr)
    {
        int m = (st+dr)/2;
        int pivot = v[st];
        int poz_left=st,poz_right=dr,aux=0;

        for(int i=st;i<=dr;i++)
        {
            if(v[i]<pivot)
                temp[poz_left++] = v[i];
            else 
                if(v[i]>pivot)
                    temp[poz_right--] = v[i];
                else
                    aux = v[i];
        }
        temp[poz_right] = aux;
        for(int i=st;i<=dr;i++) v[i]=temp[i];
        
        quicksort(st,poz_left-1);
        quicksort(poz_right+1,dr);
    }
}

int main()
{
    f>>n;
    for(int i=0;i<n;i++) f>>v[i];

    quicksort(0,n-1);
    for(int i=0;i<n;i++) g<<v[i]<<" ";

    return 0;
}