Cod sursa(job #2540441)

Utilizator denmirceaBrasoveanu Mircea denmircea Data 7 februarie 2020 10:11:24
Problema Sortare prin comparare Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
using namespace std;
ifstream fin ("algsort.in");
ofstream fout("algsort.out");
int v[500005],n,i;
int pivot(int st,int dr)
{
    int p=rand()*rand()%(dr-st)+st;
    swap(v[p],v[dr]);
    int j=st-1;
    for(int i=st; i<dr; i++)
    {
        if(v[i]<v[dr])
            swap(v[i],v[++j]);
    }
    swap(v[++j],v[dr]);
    return j;
}
void qusort(int st,int dr)
{
    if(st<dr)
    {
        int p=pivot(st,dr);
        qusort(st,p-1);
        qusort(p+1,dr);
    }
}
int main()
{
    fin>>n;
    srand(time(0));
    for(i=1; i<=n; i++)
        fin>>v[i];
    qusort(1,n);
    for(i=1; i<=n; i++)
        fout<<v[i]<<" ";
}