Cod sursa(job #2987499)

Utilizator CiprianHutanuHutanu Ciprian CiprianHutanu Data 2 martie 2023 13:34:14
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.09 kb
#include <fstream>
#include <cstdlib>

using namespace std;

ifstream f;
ofstream g;

void bublesort(int v[], int n)
{
    int i, aux;
    bool ok = 1;
    while (ok == 1)
    {
        ok = 0;
        for(i=0;i<n-1;i++)
            if (v[i] > v[i + 1])
            {
                ok = 1;
                aux = v[i];
                v[i] = v[i + 1];
                v[i + 1] = aux;
            }
    }
}

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

int main()
{
    f.open("algsort.in");
    int n, v[500000], i;
    f >> n;
    for (i = 1; i <= n; i++)
        f >> v[i];
    f.close();
    quicksort(v, 1, n);
    g.open("algsort.out");
    for (i = 1; i <= n; i++)
        g << v[i] << ' ';
    g.close();
    return 0;
}