Cod sursa(job #3003771)

Utilizator Alexco2003Codarcea Alexandru-Christian Alexco2003 Data 15 martie 2023 22:00:49
Problema Sortare prin comparare Scor 80
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.96 kb
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>

using namespace std;

void quicksort(int left, int right, int v[])
{
    if (left < right)
    {

        int pozpivot = left + rand() % (right - left + 1);
        int pivot = v[pozpivot];
        swap(v[pozpivot], v[right]);
        int i = left - 1,j;
        for (j=left; j < right; j++)
        {
            if (v[j] <= pivot)
            {
                i++;
                swap(v[i], v[j]);
            }
        }
        swap(v[i + 1], v[right]);
        pozpivot = i + 1;
        quicksort(left, pozpivot - 1,v);
        quicksort(pozpivot + 1, right,v);
    }
}


int main()
{
    srand ( time(NULL) );
    ifstream f1 ("algsort.in");
    ofstream f2 ("algsort.out");
    int n,i;
    f1>>n;
    int v[n];

    for (i=0; i<n; i++)
        f1>>v[i];

    quicksort(0,n-1,v);

    for (i=0; i<n; i++)
        f2<<v[i]<< " ";

    return 0;
}