Cod sursa(job #2624716)

Utilizator UrsaWarlordFrincu Madalin Gabriel UrsaWarlord Data 5 iunie 2020 10:43:51
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.05 kb
#include <bits/stdc++.h>
using namespace std;

// 1: numere aleatorii
// 2: numere aproape sortate
// 3: numere sortate invers
// 4: numere aleatorii dar multe perechi de numere identice


void swap(int*a, int* b)
{
    int aux = *a;
    *a = *b;
    *b = aux;
}

int partitie(int arr[], int begin, int end)
{
    int pivot = arr[end];
    int i = begin-1;
    for(int j = begin; j<=end-1;j++)
    {
        if(arr[j] < pivot)
        {
            i++;
            swap(&arr[i],&arr[j]);
        }
    }
    swap(&arr[i+1],&arr[end]);
    return (i+1);
}
void quickSort(int myvect[], int begin, int end)
{
    if ( begin < end )
    {
        int pi = partitie(myvect,begin,end);
        quickSort(myvect, begin, pi - 1);
        quickSort(myvect, pi +1, end);
    }
}




int N;
ifstream f("algsort.in");
ofstream g("algsort.out");
int main()
{
    f >> N;
    int myvect[N];
    for(int i=0;i<N;i++)
        f >> myvect[i];
    quickSort(myvect,0,N-1);
    for(int i=0;i<N;i++)
        g << myvect[i] << " ";
}