Cod sursa(job #2429014)

Utilizator qfl1ck32Andrei qfl1ck32 Data 7 iunie 2019 11:37:05
Problema Sortare prin comparare Scor 40
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.88 kb
#include <iostream>
#include <fstream>
#define DIMMAX 500000
using namespace std;
ifstream fin("algsort.in");
ofstream fout("algsort.out");

void intsch(int &a, int &b)
{
    int aux;
    aux = a;
    a = b;
    b = aux;
}

int part(int v[], int s, int d)
{
    int piv = v[d], i = s, j;
    for (j = i; j  < d; j++)
        if (v[j] < piv)
            {
                intsch(v[i], v[j]);
                i++;
            }
    intsch(v[i], v[d]);
    return i;
}

void quicksort(int v[], int s, int d)
{
    int pi;
    if (s < d)
    {
        pi = part(v, s, d);
        quicksort(v, s, pi-1);
        quicksort(v, pi+1, d);
    }
}

int main()
{
    int n, v[DIMMAX], i;
    fin>>n;
    for (i = 0; i < n; i++)
        fin>>v[i];
    quicksort(v, 0, n-1);
    for (i = 0; i < n; i++)
        fout<<v[i]<<" ";
    fin.close();
    fout.close();
}